代码之家  ›  专栏  ›  技术社区  ›  Dennis Vash

如何使用TypeScript键入枚举值?

  •  0
  • Dennis Vash  · 技术社区  · 6 年前

    enum :

    export enum IconNames {
      DEFAULT = 'DEFAULT',
      MOVE = 'MOVE',
      RESIZE = 'RESIZE',
      ADD = 'ADD',
      CANCEL = 'CANCEL',
      CLOSE = 'CLOSE',
    }
    

    name isTransform 所以我只能用 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);
    

    我需要为它构建一个接口吗?我怎么用?

    1 回复  |  直到 6 年前
        1
  •  1
  •   thedude    6 年前

    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
    }
    

    isTransform 只有 IconNames 值或使用 string ?

    推荐文章