TypeScript 类型体操:从入门到放弃
TypeScript 类型体操
TypeScript 的类型系统是图灵完备的,这意味着你可以在类型层面进行任意计算。
基础概念
条件类型
type IsEqual<A, B> = A extends B ? B extends A ? true : false : false;
映射类型
type Readonly<T> = { readonly [K in keyof T]: T[K] };
模板字面量类型
type Getters<T> = {
[K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};
实战:DeepReadonly
type DeepReadonly<T> = {
readonly [K in keyof T]: T[K] extends object
? DeepReadonly<T[K]>
: T[K];
};
总结
类型体操虽然有趣,但在实际项目中要适度使用,保持代码可读性。




评论 (0)
暂无评论,快来抢沙发吧