当使用 const、 var 或 let 声明变量时,可以选择添加类型注释以显式指定变量的类型:
let myName: string = "Alice";
然而,在大多数情况下,这是不需要的。只要有可能,TypeScript 就会尝试自动推断代码中的类型。例如,根据初始值的类型推断变量的类型:
// No type annotation needed -- 'myName' inferred as type 'string'
let myName = "Alice";
在大多数情况下,你不需要明确地学习推理规则。如果您刚开始使用,请尝试使用比您想象的更少的类型注释——您可能会惊讶地发现,只需要很少的类型注释,TypeScript 就可以完全理解正在发生的事情。
函数是在 JavaScript 中传递数据的主要方式
TypeScript 允许您指定函数的输入和输出值的类型
声明函数时,可以在每个参数后面添加类型注释,以声明函数接受的参数类型。参数类型注释位于参数名之后
// Parameter type annotation
function greet(name: string) {
console.log("Hello, " + name.toUpperCase() + "!!");
}
当参数具有类型注释时,将检查该函数的参数:
// Would be a runtime error if executed!
greet(42);
还可以添加返回值类型注释。返回值类型注释出现在参数之后:
function getFavoriteNumber(): number {
return 26;
}
与变量类型注释非常相似,你通常不需要返回值类型注释,因为 TypeScript 将根据返回语句推断函数的返回类型。上面示例中的类型注释不会改变任何东西。有些代码库会为文档目的显式指定返回类型,以防止意外更改,或者仅仅为了个人喜好。
匿名函数与声明的函数有些不同。当一个函数出现在 TypeScript 可以决定如何调用它的地方时,该函数的参数将自动被赋予类型。