问题描述
例如:
interface Base {
field1: number;
}
interface Sub1 extends Base {
field3: string;
field2?: never;
}
interface Sub2 extends Base {
field3: number;
field2: string;
}
type Unionized = Sub1 | Sub2
function MyFunc(union: Unionized) {
if (union.field2) {
// expect union.field3 to be a number
// But instead it is a union of string | number
console.log(union.field3)
}
}
我希望从上面的代码中可以知道,当union.field2
存在时,union.field3
的类型应该是number
的接口,Sub2
的类型为{{1} }。
这可能吗?
编辑1 :添加了屏幕截图
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)