如何在TypeScript中实现NullCheck工具类型,将类型属性设为可空?
实现TypeScript的NullCheck工具类型
你需要的NullCheck工具类型可以通过TypeScript映射类型实现,核心逻辑是遍历目标类型的所有属性,为每个属性的类型添加null联合选项:
// 定义NullCheck工具类型 type NullCheck<T> = { [K in keyof T]: T[K] | null; }; // 原接口A interface A { a: number; b: boolean; } // 使用工具类型得到类型B type B = NullCheck<A>; // 此时B的结构等价于: // type B = { // a: number | null; // b: boolean | null; // }
逻辑说明
keyof T:获取类型T的所有属性名构成的联合类型(此处为"a" | "b")[K in keyof T]:遍历每个属性名,对每个属性执行类型转换T[K] | null:将原属性类型T[K]与null组合成联合类型
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

