我有一个枚举定义如下:
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)
===>有效。
那我在这里想念什么?
答案 0 :(得分:1)
currentTask
是字符串类型,但是WORK
和SLEEP
是taskTypes
类型的枚举成员
所以[WORK, SLEEP]
是taskTypes
枚举的数组。这样的数组永远不能包含字符串。
['work', 'sleep']
是一个字符串数组,可以包含一个字符串。
如果您将私人成员键入为taskTypes
类型,则它也将起作用
private currentTask: taskTypes