TypeScript 由微软开发(2012 年发布 1.0),它在 JS 的语法之上 added 类型注解、接口、泛型、类型推断等静态类型能力。所谓「超集」:任何合法的 JS 代码都是合法的 TS 代码,把 .js 改成 .ts 就可以开始用。编译(tsc)时做完整类型检查,编译产物是抹掉所有类型的普通 JS——类型只在编译期存在,运行时零开销。
它解决的核心痛点是「动态类型的不可控」:JS 函数参数传错类型要到运行时才爆炸,TS 在编写时就在编辑器里红线提示,配合 IDE 的自动补全与重构能力,让中大型项目的可维护性产生质的提升。Vue 3、React 企业级项目、VS Code 本身都是 TS 写的。
// 一个函数,参数与返回值都标注类型
function add(a: number, b: number): number {
return a + b;
}
add(1, 2); // ✓
add('1', 2); // ✗ 编辑器立即红线:类型 "string" 不能赋给 "number"
// 类型推断:不写注解也能推出类型
const count = 10; // 推断为 number
const names = ['a', 'b']; // 推断为 string[]
// 编译后类型被完全抹掉:
// function add(a, b) { return a + b; }