TypeScript入门

TypeScript的主要特征之一是添加类型信息,也因此得名。这种类型信息可以帮助JavaScript程序变得更易预测和推断。

类型让开发者编写更明确的“契约”。换句话说,函数签名之类的东西更加明确。

未使用TS:

function add(a, b) {
  return a + b;
}
add(1, 3);   // 4
add(1, '3'); // '13'

使用TS:

function add(a: number, b: number) {
  return a + b;
}
add(1, 3);   // 4
// 编译器会在运行JS之前报错
add(1, '3'); // '13'

使用npm安装TypeScript转换器:

$ tsc test.ts
$ node test.js

然后使用tsc手动将TypeScript源文件编译为ES5:

$ tsc test.ts
$ node test.js

关于ES6示例

我们早期的ES6类现在不会编译。 TypeScript比ES6更苛刻,它需要声明实例属性:

class Pizza {
  toppings: string[];
  constructor(toppings: string[]) {
    this.toppings = toppings;
  }
}

注意,现在我们已经声明toppings是一个字符串数组,TypeScript将强制这样做。 如果我们尝试为它分配一个数字,我们将在编译时收到一个错误。

如果你想让一个属性的值可以设置为任何类型,你只需声明其类型为“any”:

class Pizza {
  toppings: any;
  //...
}
下一节:到目前为止tsc已用于编译单个文件。通常,程序会有多个文件进行编译。值得庆幸的是tsc可以处理多个文件作为参数。