欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

TypeScript 泛型与类型守卫深度解析

时间:2026年08月12日 05:39:03 浏览:0

TypeScript 泛型与类型守卫深度解析


泛型和类型守卫让 TypeScript 代码更安全灵活。


1. 泛型基础


function identity<T>(arg: T): T {
return arg;
}
let result = identity<string>('hello');

2. 泛型约束


interface Lengthwise {
length: number;
}
function logLength<T extends Lengthwise>(arg: T): T {
console.log(arg.length);
return arg;
}

3. 类型守卫


function isString(value: unknown): value is string {
return typeof value === 'string';
}

function process(value: string | number) {
if (isString(value)) {
console.log(value.toUpperCase());
} else {
console.log(value.toFixed(2));
}
}

4. 泛型与 keyof


function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}

泛型和类型守卫是 TypeScript 高级类型系统的核心。