【发布时间】:2021-06-15 19:27:37
【问题描述】:
给定一个基本类型定义
interface Base {
base: boolean
}
interface AFromBase extends Base {
propA: number
}
interface BFromBase extends Base {
propB: number[]
}
type Final = AFromBase | BFromBase
这将导致错误:
类型'{自定义:假; propA:数字; }' 不可分配给类型 '风俗'。对象字面量只能指定已知属性,并且 “自定义”类型中不存在“propA”。ts(2322)
type Custom = Omit<Final, 'base'> & {
custom: boolean,
}
const instance: Custom = {
custom: false,
propA: 123,
~~~~~~~~~~
}
但是这行得通
type Custom = (Omit<AFromBase, 'base'> | Omit<BFromBase, 'base'>) & {
custom: boolean,
}
const instance: Custom = {
custom: false,
propA: 123,
}
谁能解释一下为什么会这样?
【问题讨论】:
标签: typescript