arrays - 从类型联合创建唯一数组项的联合(打字稿)
问题描述
我想问一下,是否可以从这些类型的联合中声明一个唯一类型的数组?
我有这种类型Value
:
type Value = string | number
然后我创建了Values
这样的类型:
type Values = Value[]
但这会创建一个类型:
type Values = (string|number)[]
但是我怎样才能从类型中实现这一点Value
?
type Values = string[] | number[]
checkbox
因为基本上我有一个为表过滤器呈现 -es 的函数。那checkbox
将始终具有string
或number
作为一个值。
然后,当您单击复选框时,它会将该值添加到数组中。例如,您有一个列firstName
,并向该过滤器添加两个名称。然后它变成一个数组string
或数组number
:string[] | number[]
代表我的类型Values
。
那么有没有办法Values
从 type 创建 type Value
?
我创建了这个示例沙箱只是为了比较这些类型。
感谢您的任何意见!
解决方案
我会选择受限模板
type Values<T extends string | number> = T[];
const myArr: Values<string> = [
'foo',
'bar',
];
const myArr2: Values<number> = [
1,
2,
];
或者使用重载类型(让打字稿根据数组内部的内容来决定类型)
type ValueTypeA = string[];
type ValueTypeB = number[];
type Values = ValueTypeA | ValueTypeB;
const myArr: Values = [
'foo',
'bar',
];
const myArr2: Values = [
1,
2,
];
推荐阅读
- android - 如何使用背景和图标创建 android drawable xml 状态
(svg) - excel - Excel VBA中的垂直到水平转置
- postgresql - 恢复我从远程转储的 postgres 数据库
- javascript - React - 使用不断变化的道具渲染对象
- docker - 如何编辑 docker-machine 的主目录
- vba - 创建 +1 和 -1 按钮
- c++ - 将文件传递给函数期间的“未定义引用”
- javascript - 将值传递给给定的函数 prop React
- javascript - 使用 Typescript 在 Cypress 测试中动态导入:ChunkLoadError: Loading chunk 1 failed
- swift - WKWebview 在选择文本时滚动