欢迎来到程序员中文网!

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

TypeScript 泛型与类型守卫

时间:2026年08月12日 04:50:02 浏览:1

泛型基础


泛型允许在定义函数、接口或类时不预先指定类型,调用时再指定。


function identity<T>(arg: T): T {
return arg;
}

let output = identity<string>('myString');
let output2 = identity(123); // 类型推断

泛型约束


interface Lengthwise {
length: number;
}

function logLength<T extends Lengthwise>(arg: T): T {
console.log(arg.length);
return arg;
}
logLength('hello'); // 5
logLength([1,2,3]); // 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));
}
}

泛型与类型守卫让 TypeScript 代码既安全又灵活。