[提问] 请问 TypeScript 中要怎么参考 JS 的 cc.Enum ?

版本:CocosCreator v2.1

目前我有一個 JavaScript 的 Enum

var RollerMgrState = cc.Enum({
    ROLLING: -1,
    STOP: -1,
});

module.exports = RollerMgrState;

並且撰寫了 d.ts

declare enum RollerMgrState {
    ROLLING,
    STOP,
}

並且在 TypeScript 中使用

switch (event) {
    case RollerMgrState.STOP:
        this.fireEventOnAction(this.eventName.show_result);
        break;
    default:
        cc.error("state: " + event + " not find");
        return "";
}

VSCode 中沒有錯誤訊息,
但在 runtime 中執行時會出現錯誤

網路上尋找不到解法,請問要怎麼解呢?

你有没有把这个枚举导出呢 module.export

有的,我補一下原文

ts 自己就有enum啊 。。为啥要用cc.Enum

因為 JS 裡的組件也要使用,
如果寫 TS 版的 enum,JS 那邊無法共用

直接使用ts的枚举类型。就行了。如果要被编辑器识别的话,可以用cc.Enum包装一下就行了。

export enum RollerMgrState {
    ROLLING = 0, STOP
}

@property({
    type: cc.Enum(RollerMgrState)
})
3赞