面试题答案
一键面试- 遇到的问题:
- 当使用交叉类型合并
InterfaceA
和InterfaceB
时,会出现属性prop1
类型冲突的问题。因为在InterfaceA
中prop1
是string
类型,在InterfaceB
中prop1
是number
类型,TypeScript不允许同一属性有两种不同的类型。
- 当使用交叉类型合并
- 解决方法:
- 可以通过定义一个新的类型,手动解决冲突。例如可以将
prop1
定义为string | number
类型,这样就统一了prop1
在合并类型中的类型。
- 可以通过定义一个新的类型,手动解决冲突。例如可以将
- 代码示例:
interface InterfaceA {
prop1: string;
}
interface InterfaceB {
prop1: number;
}
// 解决冲突的合并类型
interface MergedInterface {
prop1: string | number;
}
// 示例使用
let obj: MergedInterface = { prop1: 123 };
obj.prop1 = 'test';