interface Test1 {
name: string;
age: number;
}
interface Test2 extends Test1 {
id: string;
}
const a: Test1 | Test2 = { id: 'a'}; // 此处报错
a的类型可以是Test1或者是Test2,怎么处理比较好?
interface Test1 {
name: string;
age: number;
}
interface Test2 extends Test1 {
id: string;
}
const a: Test1 | Test2 = { id: 'a'}; // 此处报错
a的类型可以是Test1或者是Test2,怎么处理比较好?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
报错的原因跟联合类型没有关系,是你没给非空属性赋值。
你
Test2
是继承Test1
的,也就是说Test2
本身会拥有全部Test1
的公开成员。而Test1
里那俩属性是非空的,你在初始化时必须给赋值。