如何使用 TypeScript 键入枚举值?
Posted
技术标签:
【中文标题】如何使用 TypeScript 键入枚举值?【英文标题】:How to type enum values with TypeScript? 【发布时间】:2020-08-09 18:13:36 【问题描述】:给定一个简单的enum
:
export enum IconNames
DEFAULT = 'DEFAULT',
MOVE = 'MOVE',
RESIZE = 'RESIZE',
ADD = 'ADD',
CANCEL = 'CANCEL',
CLOSE = 'CLOSE',
我想在给定函数isTransform
中输入name
参数,所以我只会使用IconNames
值来调用它:
/* Tried `string` which doesn't work
as `name` supposed to be enum's value */
const isTransform = (name: any) => [IconNames.MOVE, IconNames.RESIZE, IconNames.ADD].includes(name);
我必须为它构建一个界面吗?如何使用它?
How to build a type from enum values in TypeScript?【问题讨论】:
我认为这很好地回答了你的问题:***.com/a/68747948/346005 【参考方案1】:这似乎有效:
function isTransform(name: string): boolean
const transformValues: string[] = [IconNames.MOVE, IconNames.RESIZE, IconNames.ADD]
return transformValues.indexOf(name) > -1
这也有效:
function isTransform(name: IconNames): boolean
const transformValues = [IconNames.MOVE, IconNames.RESIZE, IconNames.ADD]
return transformValues.indexOf(name) > -1
这里的问题是,您是仅使用IconNames
值还是使用string
调用isTransform
?
【讨论】:
我更新了问题,抱歉,是的,我想用 IconNames 值来调用它 看我回答的第二个例子,它不是回答这个用例吗?以上是关于如何使用 TypeScript 键入枚举值?的主要内容,如果未能解决你的问题,请参考以下文章