arrays - 如何将字符串“变量”数组转换为打字稿类型?
问题描述
我想知道如何将字符串变量数组转换为类型脚本类型。
注意:已经有两个 SO 答案可以处理这个问题,但是字符串是通过硬编码传递的,以保持字符串的值不变。
两个答案都传递了一个内联数组,以将数组中的字符串值作为文字保存。但是,当您将数组作为变量传递时,它就无法工作。
在线传递值有效。
但是将值作为变量传递是行不通的
问题
那么如何创建一个类型来将允许的字符串值列表限制domElements
为变量asLiterals
?
解决方案
当一个数组字面量被分配给一个变量时,它会被加宽以匹配典型的行为。
因此,变量domElements
是类型string[]
而不是('a' | 'div' | ...)[]
答案在您自己的代码中。使用与您类似的函数asLiterals()
来创建文字数组。
export function literalArray<T extends KeyTypes>(...entries: T[]): T[] {
return entries
}
您也可以在type-plus
库中找到此功能。
推荐阅读
- c - 如何在 C 中更改结构数组
- java - 当我的 Squares 数组列表中只包含一个时,JFrame 绘制两到三个项目
- python - 如何在python中绘制和显示数据集的分布?
- laravel - 在加入类别表的请求中,我得到了请求表的无效 ID
- html - 真的对css链接感到困惑。据我所知,所有内容都输入正确,但无法正常工作
- ios - 无法在颤振上压缩文件
- c# - 如何根据用户输入查询 SQL 以获取最新记录?
- firebase - 在颤动中覆盖默认的 FCM 通知
- angular - Apollo 服务器使用部分数据引发多个错误
- python - 将 None 转换为空字符串并展平列表