如何解决在联合类型上存在另一个属性时断言一个属性的类型
例如:
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 举报,一经查实,本站将立刻删除。