映射类型会携带接口的可选和只读属性
interface User { name: string; age?: number; readonly email: string; } interface User { name: string; age?: number; readonly email: string; } type change= { [P in keyof T]: T[P] } type obj = change // 可以看到obj为 //type obj = { // name: string; // age?: number | undefined; // readonly email: string; // }
通过内置的Require<>可以破坏可选属性 通过-readonly可以移除只读属性
[keyof T] 可以取得映射类型的结果
type Test= T[keyof T] type test = Test<{a:1, b:2}> // 结果是 1 | 2
还没有评论,来说两句吧...