You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript调用includes()检查枚举值时报错(已发现是笔误)

解决TypeScript枚举数组includes调用时的类型错误

错误原因

你遇到的问题是语法笔误——把数组的includes()方法调用的圆括号()写成了方括号[]。原代码中:

if (status.allowedStages?.includes[stage.stageType]) {

这里includes是数组的内置方法,你用方括号访问时,TypeScript会把它当成一个对象,尝试用枚举值stage.stageType作为键去索引这个函数对象,但函数本身并没有对应的枚举值属性,因此抛出了类型错误。

修复方案

把方括号替换成圆括号,正确调用includes()方法即可:

if (status.allowedStages?.includes(stage.stageType)) {

Array.prototype.includes()用于判断数组是否包含指定元素,调用时必须通过圆括号传递要查找的元素参数。

修复后的完整代码片段

const stage = stages[previousStageType];

if (skipValidation) {
  return stage;
}
if (stage.isAllowed) {
  return stage.isAllowed(status, settings) ? stage : null;
}
// 修复后的代码行
if (status.allowedStages?.includes(stage.stageType)) {
  return stage;
}
return null;

内容的提问来源于stack exchange,提问作者Esben von Buchwald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:16:35