TypeScript 的核心优势
TypeScript 是 JavaScript 的超集,通过静态类型检查增强了代码的可靠性。类型系统能在编译阶段捕获潜在错误,减少运行时异常。
基础类型注解
变量声明时可直接标注类型:
typescript
let username: string = "Alice";
let age: number = 30;
let isActive: boolean = true;
数组和元组类型:
typescript
let numbers: number[] = [1, 2, 3];
let tuple: [string, number] = ["text", 42];
接口与类型别名
接口定义对象结构:
typescript
interface User {
id: number;
name: string;
email?: string; // 可选属性
}
类型别名支持更复杂的类型组合:
typescript
type Point = {
x: number;
y: number;
};
type ID = string | number;
函数类型约束
参数和返回值类型标注:
typescript
function greet(name: string): string {
return `Hello, ${name}`;
}
箭头函数类型:
typescript
const add: (x: number, y: number) => number = (x, y) => x + y;
泛型应用
创建可复用的类型组件:
typescript
function identity<T>(arg: T): T {
return arg;
}
泛型约束示例:
typescript
interface Lengthwise {
length: number;
}
function loggingIdentity<T extends Lengthwise>(arg: T): T {
console.log(arg.length);
return arg;
}
类型推断与断言
自动类型推断:
typescript
let inferredString = "text"; // 自动推断为string类型
类型断言语法:
typescript
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
高级类型技巧
联合类型与交叉类型:
typescript
type Admin = User & { privileges: string[] };
索引签名处理动态属性:
typescript
interface StringArray {
[index: number]: string;
}
编译配置
tsconfig.json 关键配置项:
json
{
"compilerOptions": {
"target": "ES6",
"strict": true,
"module": "commonjs"
}
}
类型声明文件
为第三方库添加类型支持:
typescript
declare module 'untyped-lib' {
export function doSomething(): void;
}