TypeScript 特性
TypeScript 不是一门全新的语言,而是给 JavaScript 加装了「类型系统」等能力后的超集。它的核心特性包括静态类型检查、类型推断、面向对象、泛型与编译降级,让代码在运行前就能暴露问题。
静态类型检查
变量、参数、返回值都可以声明类型,赋错类型在编译期即报错:
let age: number = 25;
age = "二十五"; // 编译报错:string 类型不能赋给 number 类型
这种检查让拼写错误、参数传错等低级 Bug 在保存代码时就被发现,而不是等到线上运行崩溃。
类型推断
不写类型时,TS 会根据初始值自动推断,让代码保持简洁:
let count = 10; // 自动推断为 number
let name = "TypeScript"; // 自动推断为 string
console.log(count, name); // 输出:10 TypeScript
类型推断是「可选类型」的关键:简单代码少写类型,复杂处再显式标注。
面向对象
TS 原生支持类、继承、接口、访问修饰符等面向对象语法:
interface Animal {
speak(): void;
}
class Dog implements Animal {
speak(): void {
console.log("汪汪"); // 输出:汪汪
}
}
new Dog().speak();
泛型
泛型让函数或类在使用时才确定类型,兼顾复用与安全:
function identity<T>(value: T): T {
return value;
}
console.log(identity<string>("你好")); // 输出:你好
console.log(identity<number>(42)); // 输出:42
编译为 JavaScript
TS 最终会编译成纯 JS,可运行在浏览器与 Node.js 等任何环境;还能把新语法降级为旧版本 ES:
tsc --target ES5 hello.ts // 将新语法降级编译,产物 hello.js
编译产出去掉了类型注解,因此类型检查不会带来任何运行时开销。
丰富的工具生态
- 编辑器智能提示、跳转定义、全局重命名一应俱全。
- 与 Vite、webpack、ts-node 等工具无缝配合。
- DefinitelyTyped 为成千上万个 JS 库提供类型声明(.d.ts)。
小结
TS 的特性可归纳为一句话:在 JS 之上加入静态类型与面向对象能力,编译后仍输出标准 JS。类型安全加上成熟的生态,使它成为大型项目的首选;更详细的特性可访问 https://example.com 查阅。从下一节起,我们将从基础语法开始,逐步深入类型世界。