gpt4 book ai didi

typescript - 字符串文字模式

转载 作者:搜寻专家 更新时间:2023-10-30 21:29:17 25 4
gpt4 key购买 nike

我看过一些使用 TypeScript 和 Redux 的示例,其中以下 pattern用于声明一个 Action 类型字符串:

export const CREATE_TASK = 'CREATE_TASK';
export type CREATE_TASK = typeof CREATE_TASK;

我有点理解第二行称为类型别名,它强制该类型的变量 - 名为 CREATE_TASK 包含字符串文字“CREATE_TASK”。我怀疑这等同于本文中提到的“字符串文字类型”:https://www.typescriptlang.org/docs/handbook/advanced-types.html

这是真的吗?有人可以给我解释一下第 2 行吗?

最佳答案

这里有两件事在起作用,类型的定义和变量值的定义。

第一行定义了一个变量CREATE_TASK,其值为'CREATE_TASK'。非常简单。

第二行定义了一个名为 CREATE_TASK 的类型,它恰好具有 CREATE_TASK 变量的类型,该变量恰好是一个字符串 'CREATE_TASK'。它相当于这样定义:

export type CREATE_TASK = 'CREATE_TASK';

除非你不必再次输入字符串,只需使用现有的变量来导出类型。

这里的想法是创建一个强类型的常量枚举。这有助于通过允许将这些常量用作判别式来更有效地进行可区分联合的模式匹配。您可以限制哪些常量是允许的,并有编译器支持让您知道您涵盖了所有必要的情况。

关于typescript - 字符串文字模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com