TypeScript,如何覆盖继承的类型变量?

问题:
type TypeStr = {
b: string;
};

type TypeNum =TypeStr & {
b: number;
};
function (val:TypeNum){
// val.b (is never)
}
image.png

想要的结果:
1.想知道为何这里的TypeNum 继承为何没有覆盖TypeStr?
2.如果要实现覆盖有哪几种方式? Omit、keyof?还有么?

阅读 9.7k
1 个回答
type Override<P, S> = Omit<P, keyof S> & S;

type TypeStr = { b: string };
type TypeNum = Override<TypeStr, {b: number;}>;