MST

星途 面试题库

面试题:TypeScript交叉类型与接口混合使用时的类型冲突处理

假设你有两个接口`InterfaceA`和`InterfaceB`,`InterfaceA`有属性`prop1: string`,`InterfaceB`有属性`prop1: number`,现在你要通过交叉类型将它们合并,会遇到什么问题?如何解决这种类型冲突?请写出代码示例。
42.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

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