文件AppActions.ts
export enum Actions{
START = 0,
RECOVER,
FIRST_RUN,
ALERT_NETWORK,
LOADING_DATA,
RECEIVED_DATA,
GO_OFFLINE,
GO_ONLINE
}
文件PlayerActions.ts
import {Actions} from "./AppActions.ts"
enum Actions{
HEAL_SINGLE,
HIT_SINGLE
}
通常,对于this manual,它应该在编译时抛出错误。但是:
1- PlayerActions.ts似乎没有扩展现有的动作枚举。 (在WebStorm中import {Actions} from "./AppActions.ts"
是灰色的)
2-编译器不会抛出任何错误。
那么在多个文件中声明枚举的正确方法是什么?
答案 0 :(得分:1)
由于Transpiler会为每个“导出”构建全局类型,因此在Typescript中似乎不可能有部分枚举。
一种可能的解决方案可能是合并两个(多个)枚举,如下所示:
在第一个文件中,您拥有:
export enum Action_first_half{
START = 0,
RECOVER,
...
}
在另一个文件中,您具有:
export enum Action_second_half {
HEAL_SINGLE,
HIT_SINGLE
}
然后在另一个文件中,您可以拥有:
const Actions = { ...Action_second_half , ...Action_first_half};
type Actions = typeof Actions ;
现在,您可以将“操作”视为常规枚举:
public const action: Actions = Actions.START;