动态创建字符串文字类型

时间:2019-06-20 19:00:47

标签: typescript

我定义了以下类型:

type UserConfigCategories = 'tables-config' | 'link-config' | 'general-config';

但是这种类型可以增长,我不想更新它。 例如,是否可以从数组动态创建此类型?

1 个答案:

答案 0 :(得分:1)

如果定义类别的数组是源中的文字,则可以从在3.4中添加as const的值中推断类型。

const CONFIG_CATEGORIES = ['tables-config', 'link-config', 'general-config'] as const;
type UserConfigCategories = (typeof CONFIG_CATEGORIES)[number]

const u: UserConfigCategories = 'tables-config';
const v: UserConfigCategories = 'bad-name'; // Type '"bad-name"' is not assignable to type 
                                            // '"tables-config" | "link-config" | "general-config"'.