typescript - 根据另一个字段值限制字段类型
问题描述
鉴于以下情况:
type ActionType =
'action1' |
'action2' |
'action3';
interface Action {
type: ActionType;
value?: number | Date;
}
value
打字稿中有没有办法根据 的值来限制 的类型type
?
例如,如果type
等于action1
或action2
,我希望value
字段是类型number
,但如果type
是,action3
那么我希望值是类型Date
。
这可能不可能,但只是检查..
解决方案
您最好的机会可能是使用受歧视的工会:
type Action = {
type: 'action1' | 'action2';
value: number;
} | {
type: 'action3';
value: Date;
}
推荐阅读
- java - 获取孩子的姓名以及 Firebase 数据库中的值
- javascript - 使用通用/动态属性列表访问子属性
- svg - 为什么我的旋转 SVG 会移位?
- nested - 处理嵌套类中的 PApplet 调用
- php - 如何使用 CodeIgniter 解决日期范围搜索
- windows - -bash: /bin/bash:: 没有这样的文件或目录
- php - 定义网址字符串?
- java - Android Volley JSONObjectRequest 更改 JSON 对象顺序
- java - java lambda:如何计算列表中的总项目数?
- apache-spark - Spark UI - Spark SQL 查询执行