Logo
Section 1 / 3

什么是 TypeScript,为什么要使用它?

了解 TypeScript 是什么,它为何重要,以及它如何帮助我们编写更优质的 JavaScript 代码。

导入

什么是 TypeScript,为什么要使用它?

了解 TypeScript 是什么,它为何重要,以及它如何帮助我们编写更优质的 JavaScript 代码。

...
1function greet(name) { 2 return "Hello, " + name.toUpperCase(); 3} 4 5console.log(greet("Mark"));
1function greet(name: string): string { 2 return "Hello, " + name.toUpperCase(); 3} 4 5console.log(greet("Mark"));
...
TypeScript 文件被编译为 JavaScript 代码

动手试一试

让我们通过一个简单的例子来体验这个过程。在下方的交互式环境中,你可以编写 TypeScript 代码,将其编译并运行生成的 JavaScript 代码。点击“运行”按钮打开终端,并按以下步骤操作:

  1. 编译 TypeScript 代码:

    1tsc index.ts

    注意:tsc 是 TypeScript 编译器,它会读取你的 .ts 文件并输出纯 JavaScript 代码。

  2. 查看生成的 JavaScript 代码:

    1cat index.js
  3. 运行 JavaScript 文件:

    1node index.js

No configuration found for ID: 44c65bee4e73657b3823b7e46a6a2936ca540eebfd98522314db208099a52d6f

类型注解(如 <code>n: number</code> 和 <code>: boolean</code>)仅在开发阶段存在,在代码编译时会被移除。

1function double(x) { 2 return x + x; 3} 4 5console.log(double("3")); // 输出 "33" —— 哦不!
1function double(x: number): number { 2 return x + x; 3} 4 5console.log(double("3")); // 编译时报错
1function getUser(id) { 2 return { id, name: "Alice" }; 3} 4 5console.log(getUser(1).email.toLowerCase()); // 无法读取 undefined 的 toLowerCase 属性
1function getUser(id: number): { id: number; name: string } { 2 return { id, name: "Alice" }; 3} 4 5console.log(getUser(1).email.toLowerCase()); // 错误:属性 'email' 不存在

为实际项目配置 TypeScript