Typescript:对于相同的类型,忽略等于空的
我在尝试实现以下行为的泛型类型时遇到了困难:Typescript:对于相同的类型,忽略等于空的,typescript,generics,Typescript,Generics,我在尝试实现以下行为的泛型类型时遇到了困难: 如果目标类型比源类型宽,则结果类型包含源中未显示的目标类型的所有属性 若目标类型和源类型具有相同的属性,那个么结果应该是空的(只允许空对象) 上述第一个条件似乎很容易实现,如: //S-表示源类型 //T-代表可以更宽的目标类型 类型DiffType=省略; 但它不满足第二个条件,假设: type A={A:string;} 类型A1={a:string;} 类型AB={a:string;b:string;} //工作如期进行 常数x:DiffTy
//S-表示源类型
//T-代表可以更宽的目标类型
类型DiffType=省略;
但它不满足第二个条件,假设:
type A={A:string;}
类型A1={a:string;}
类型AB={a:string;b:string;}
//工作如期进行
常数x:DiffType={
b:‘b’
}
//不幸的是,它没有抛出错误
常数x1:DiffType={
福:“酒吧”
}
//但是应该只允许(期望的行为)
常量x2:DiffType={}
我试着做一些类似的事情,但也没用:
type DiffType={}扩展忽略?{}:省略;
有人能建议如何实施这种行为吗?我希望这是可能的:)最后!不幸的是,只有当你找到了答案时,这才显得相当容易(
type DiffType={}扩展忽略
?{[K:string]:从不}
:省略;
有必要通过
[K:string]:never来拒绝在对象中手动添加任何键。不要低估“never”的威力!最后!不幸的是,只有在找到答案后,这似乎才很容易(
type DiffType={}扩展忽略
?{[K:string]:从不}
:省略;
有必要通过[K:string]:never来拒绝在对象中手动添加任何键。不要低估“never”的威力