typescript - 告诉变量是联合类型中的哪一种
问题描述
interface X {
x: number
z: string
}
interface Y {
x: number
y: number
}
type XY = X | Y
function foo(arg: XY) {
if (arg.y) {
console.log(arg.x + arg.y)
}
}
我想检查 arg 是 X 还是 Y,最直观的方法似乎是检查 arg 中是否有 y,但是 TSC 不允许这样做。
什么是正确的方法?
解决方案
推荐阅读
- python-3.x - 从 postgresql 列中打印出 python3 中的列行数
- javascript - 实现 MathJax:使用 JSFiddle、Canvas 和 DOM
- entity-framework - EF Core Cascadia 删除多个外键
- bash - 从脚本创建 bash 文件
- javascript - 这是syntaxhighlighter-3.0.83的BUG,会自动删除html、body、head标签吗?
- java - 如何设置自定义线程池以处理 Spring WebFlux 中的特定请求?
- android - 是否可以在 Android Studio 中或使用其他模拟器模拟两台设备之间的蓝牙连接?
- css - 包含文本的 CSS 中的非结构化形状
- javascript - 菜单打开时如何在主体(背景)中禁用滚动?
- ios - iOS 通用链接:Django Python 支持