javascript - Typescript:是否可以引用类型别名

标签 javascript typescript

Typescript 允许我们使用字符串文字作为类型。问题是我可以用点符号引用它们吗?例如我有这样的类型

export type SomeTypes = 'OPEN' | 'CLOSED' | 'PROGRESSED' | 'DONE';

我可以这样使用它吗?

if(typecheck === SomeTypes.OPEN)

现在我必须写出字符串文字,这不完全是类型安全的方式。看起来像这样

if(typecheck === 'OPEN')

最佳答案

看看TypeScript 2.4 - 它支持字符串枚举。

除此之外(因为 2.4 引入了重大更改),更具表现力的“解决方法”如下 - 将常量定义为变量,然后为常量提供别名:

export const SOME_TYPE_OPEN = 'OPEN';
export const SOME_TYPE_CLOSED = 'CLOSED';
...
export type SomeType = SOME_TYPE_OPEN | SOME_TYPE_CLOSED | ...;

然后你可以使用:

function getIt(value: SomeType) {
    if (SOME_TYPE_OPEN === value) { ... }
    ...
}

关于javascript - Typescript:是否可以引用类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45279319/

相关文章:

javascript - 如何使用 jQuery 模板转义单引号

javascript - 如何匹配除逗号以外的所有特殊字符

typescript - 在 Jest TypeScript 中找不到名称 'it'

node.js - nodejs 单元测试 PubSub.publish 不发送数据

typescript - 在 aws-cdk TS 文件中创建 documentDB 集群,并使用 EventSourceMapping 将其作为事件源

javascript - 推送到 React 状态数组

javascript 代码错误显示未定义的值

javascript - FunctionComponent HOC 的正确类型

javascript - 如何使用复选框来选中所有或取消选中所有框到 handsontable

angular - 共享单例服务并避免共享组件中的循环依赖