Skip to content

显示类型

到现在为止,我们还没有告诉 typescript person 或者 date 是什么类型。当我们编辑代码时会告诉 TypeScript person 是一个 string ,那 date 应该是一个 Date 对象。 有了这个,TypeScript 可以告诉我们其他 greet 可能被错误调用的情况。例如修改一下 hello.ts 代码

javascript
function greet(person: string, date: Date) { 
  console.log(`Hello ${person}, today is ${date.toDateString()}!`); 
}

嗯?TypeScript 在我们的第二个参数上报告了一个错误,这是为什么呢? 也许令人惊讶的是, Date() 在 JavaScript 中调用会返回一个 string 。可以使用 new Date() 满足我们的期望,快速修复错误:

javascript
function greet(person: string, date: Date) { 
  console.log(`Hello ${person}, today is ${date.toDateString()}!`); 
}
greet("小锋", new Date());

成功的编译输出了 hello.js 。 请记住,我们并不总是必须给变量编写明确的类型注释。在许多情况下,TypeScript 可以为我们自动推断(或“找出”)类型,即使我们忽略定义这些类型。比如:

这里没有给 msg 指定具体的类型,typescript 会根据函数的实参来自动推断类型。这是一个特性,当类型系统最终会推断出相同的类型时,最好不要添加类型注释。