Typescript枚举键入错误(类型'string'的参数不能分配给类型的参数)

时间:2019-10-21 22:11:39

标签: javascript typescript

我有一个枚举定义如下:

export enum taskTypes {
  WORK = 'work',
  SLEEP = 'sleep',
  EXERCISE = 'exercise',
  EAT = 'eat'
}

在我的课堂顶部,我定义currentTask如下:

private currentTask: string;

但是,当我在[WORK, SLEEP].includes(currentTask)中使用枚举时,会出现以下错误。

Argument of type 'string' is not assignable to parameter of type 'currentTask'

奇怪的是,当我只是简单地将其更改为使用它不会抱怨的实际字符串时。

['work', 'sleep'].includes(currentTask) ===>有效。

那我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

currentTask是字符串类型,但是WORKSLEEPtaskTypes类型的枚举成员

所以[WORK, SLEEP]taskTypes枚举的数组。这样的数组永远不能包含字符串。

['work', 'sleep']是一个字符串数组,可以包含一个字符串。

如果您将私人成员键入为taskTypes类型,则它也将起作用

private currentTask: taskTypes