javascript - 从数组 Typescript 派生类型
问题描述
我有一个数组
const frequencyOptions = ['Daily', 'Weekly', 'Monthly'];
我需要将 Typescript Type 设置为另一个数组,该数组只能包含选项数组中的值,例如
let frequencyValues = ['Daily', 'Weekly'] // can be any combination of options array
解决方案
如果您要控制选项数组的创建,您可以:
const frequencyOptions = ['Daily', 'Weekly', 'Monthly'] as const;
type Option = typeof frequencyOptions[number]; // "Daily" | "Weekly" | "Monthly"
let frequencyValues: Option[] = ['Daily', 'Weekly'];
// Expect error
frequencyValues = ['foo'] // Type '"foo"' is not assignable to type '"Daily" | "Weekly" | "Monthly"'.
推荐阅读
- sql - TimescaleDB/Postgres:插入冲突保持最大值
- mongodb - 如何在 MongoDB 中按其大小的降序对集合进行排序
- github - 在外部仓库更新时触发 GitHub 操作(推送)
- javascript - 从 Webpack 导入为空,但从 Typescript 导入是正确的
- javascript - 如何将我的 javascript innerHTML 设置为单独的组件?
- javascript - 如何在画布中制作 ctrl+z 键盘事件?
- haskell - 使用 Logic monad 回溯使用 exceptT 引发的异常
- html - 导航栏项目均匀分布
- php - 为我的电子邮件模板使用默认的 Laravel 电子邮件布局
- json - 如何从 JSON 创建以空格分隔的字符串?