首页 > 解决方案 > 从数组 Typescript 派生类型

问题描述

我有一个数组

const frequencyOptions = ['Daily', 'Weekly', 'Monthly'];

我需要将 Typescript Type 设置为另一个数组,该数组只能包含选项数组中的值,例如

let frequencyValues = ['Daily', 'Weekly'] // can be any combination of options array

标签: javascriptarraystypescripttypes

解决方案


如果您要控制选项数组的创建,您可以:

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"'.

操场


as const 防止文字类型扩大string,然后我们查询元组项目类型


推荐阅读