typescript中声明联合类型报错

little_boy
  • 989
interface Test1 {
  name: string;
  age: number;
}

interface Test2 extends Test1 {
  id: string;
}

const a: Test1 | Test2  = { id: 'a'}; // 此处报错

a的类型可以是Test1或者是Test2,怎么处理比较好?

回复
阅读 278
2 个回答

报错的原因跟联合类型没有关系,是你没给非空属性赋值。

Test2 是继承 Test1 的,也就是说 Test2 本身会拥有全部 Test1 的公开成员。而 Test1 里那俩属性是非空的,你在初始化时必须给赋值。

Test2继承了Test1了啊 不要继承

你知道吗?

宣传栏