typescript中声明联合类型报错

interface Test1 {
  name: string;
  age: number;
}

interface Test2 extends Test1 {
  id: string;
}

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

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

阅读 2.8k
2 个回答

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

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

Test2继承了Test1了啊 不要继承

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题