核心特性
TypeScript 的设计哲学和关键技术特性
静态类型检查
在编译时捕获类型错误,提供完整的类型推断系统。支持接口、泛型、联合类型等高级类型特性。
现代语言特性
支持ES6+所有特性,并扩展了装饰器、枚举、元组等高级功能。与JavaScript完全兼容。
强大的工具支持
提供智能代码补全、重构、导航等IDE功能。与VS Code深度集成,开发体验极佳。
渐进式采用
可以逐步将JavaScript项目迁移到TypeScript。支持混合使用JS和TS文件,降低迁移成本。
生态系统
围绕 TypeScript 构建的完整工具链
框架支持
所有主流框架都提供TypeScript支持。React、Vue、Angular、Svelte等都有完整的类型定义和开发工具。
测试框架
Jest、Vitest、Mocha等测试框架都支持TypeScript。提供类型安全的测试编写和断言。
构建工具
Webpack、Vite、Rollup等构建工具都内置TypeScript支持。无需额外配置即可使用。
类型定义
DefinitelyTyped提供5000+流行库的类型定义。npm包大多自带类型定义或@types包。
运行时
Node.js、Deno、Bun等JavaScript运行时都原生支持TypeScript。无需编译即可运行。
后端开发
NestJS、Express、Fastify等后端框架都支持TypeScript。提供完整的后端开发类型安全。
快速入门
# 安装TypeScript
npm install -g typescript
# 创建TypeScript项目
mkdir my-ts-project
cd my-ts-project
npm init -y
# 创建tsconfig.json
tsc --init
# 编写TypeScript代码
echo 'function greet(name: string): string {
return `Hello, ${name}!`;
}
console.log(greet("TypeScript"));' > index.ts
# 编译TypeScript
tsc
# 运行编译后的JavaScript
node index.js
配置示例
// tsconfig.json
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"lib": ["ES2020", "DOM"],
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"declaration": true,
"declarationMap": true,
"sourceMap": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
学习资源
与其他语言对比
vs JavaScript
TypeScript添加了静态类型检查,提供更好的开发工具支持。JavaScript更灵活,适合小型项目和快速原型。
vs Flow
TypeScript生态更成熟,工具支持更好。Flow由Facebook开发,类型系统更灵活,但社区较小。
vs JSDoc
TypeScript提供完整的类型系统和编译时检查。JSDoc是注释中的类型标注,运行时无检查。