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

TypeScript报错2339:DimensionAction类型无UPDATE_COLUMNS属性

问题排查与修正

你遇到的TypeScript错误不是IDE问题,是代码里的枚举使用逻辑错误:

在dimensionReducer函数中,action参数是DimensionAction枚举的具体值(比如'update_columns'或'update_rows'),而非枚举类型本身。你在switch的case分支里写action.UPDATE_COLUMNS,相当于拿一个字符串值去访问它的UPDATE_COLUMNS属性,这显然不存在,所以TypeScript抛出了类型错误。

正确的写法应该直接引用枚举类型的成员:

export enum DimensionAction {
    UPDATE_ROWS = 'update_rows',
    UPDATE_COLUMNS = 'update_columns',
}

const dimensionReducer = (state: Dimension, action: DimensionAction): void => {
    switch (action) {
        case DimensionAction.UPDATE_COLUMNS:
            break
        case DimensionAction.UPDATE_ROWS:
            break
        default:
            throw new Error('Must pass action')
    }
}

额外补充两点:

  • yarn lint没报错是因为它通常只检查代码风格(比如缩进、变量命名规范),不会执行TypeScript的类型校验,要做类型校验需要运行tsc --noEmit命令。
  • 原代码里的throw Error('...')建议改成throw new Error('...'),这是符合标准JavaScript语法的写法。

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:52:00