【问题标题】:How to type enum values with TypeScript?如何使用 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);

我必须为它构建一个界面吗?如何使用它?

【问题讨论】:

标签: typescript enums


【解决方案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 值来调用它
  • 看我回答的第二个例子,它不是回答这个用例吗?
猜你喜欢
  • 2020-09-24
  • 2023-04-04
  • 2022-01-15
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多