带有打字稿的枚举
Posted
技术标签:
【中文标题】带有打字稿的枚举【英文标题】:Enums with Typescript 【发布时间】:2020-10-27 21:00:42 【问题描述】:我有这个带有枚举的明显简单的代码部分。
这些是类型定义:
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
上报告 Typescript 的错误。
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”’.
我做错了什么?有人可以帮助我吗?谢谢。
【问题讨论】:
可能是status: keyof typeof AcquisitionStatus
-> status: keyof AcquisitionStatus
?
没有键的枚举获得数值。如果你需要一直使用这个枚举,你可以简单地做status: AcquisitionStatus
【参考方案1】:
枚举的值类似于 0,1,2,3 你需要告诉枚举他们的值。
试试
export enum AcquisitionStatus
IDLE = 'IDLE',
RUNNING = 'RUNNING',
DONE = 'DONE',
ERROR = 'ERROR',
【讨论】:
以上是关于带有打字稿的枚举的主要内容,如果未能解决你的问题,请参考以下文章