指定类型

当使用 const、 var 或 let 声明变量时,可以选择添加类型注释以显式指定变量的类型:

let myName: string = "Alice";

然而,在大多数情况下,这是不需要的。只要有可能,TypeScript 就会尝试自动推断代码中的类型。例如,根据初始值的类型推断变量的类型:

// No type annotation needed -- 'myName' inferred as type 'string'
let myName = "Alice";

在大多数情况下,你不需要明确地学习推理规则。如果您刚开始使用,请尝试使用比您想象的更少的类型注释——您可能会惊讶地发现,只需要很少的类型注释,TypeScript 就可以完全理解正在发生的事情。

Functions

函数是在 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 可以决定如何调用它的地方时,该函数的参数将自动被赋予类型。