我的这段代码看起来很简单,带有枚举。
这些是类型定义:
export enum AcquisitionStatus {
IDLE, RUNNING, DONE, ERROR,
}
export type State = {
acquisitionCycleStatus: {
progress: number
status: keyof typeof AcquisitionStatus
}
}
这是我使用它们的功能:
const initialState = {
acquisitionCycleStatus: {
progress: 0,
status: AcquisitionStatus.IDLE,
},
}
const StoreContext = createContext<[State, Dispatch<Actions>]>([
initialState,
() => null,
])
这是错误,正在报告initialState
上的打字稿。
Type ‘{ acquisitionCycleStatus: { progress: number; status: AcquisitionStatus; }; }’ is not assignable to type ‘State’.
The types of ‘acquisitionCycleStatus.status’ are incompatible between these types.
Type ‘AcquisitionStatus’ is not assignable to type ‘“IDLE” | “RUNNING” | “DONE” | “ERROR”’.
我做错了什么?有人可以帮我吗?谢谢。
答案 0 :(得分:1)
枚举得到的值如0、1、2、3 您需要告诉枚举其值。
尝试
export enum AcquisitionStatus {
IDLE = 'IDLE',
RUNNING = 'RUNNING',
DONE = 'DONE',
ERROR = 'ERROR',
}