泛型基础
泛型允许在定义函数、接口或类时不预先指定类型,调用时再指定。
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 代码既安全又灵活。
