我导出了一些字符串常量并尝试将它们用于同一文件中的类型定义,但它不起作用。
export const SET_DETERMINATION = 'SET_DETERMINATION';
export const SET_HIGHLIGHTING = 'SET_HIGHLIGHTING';
export const SET_TEXT = 'SET_TEXT';
export type THypoAction =
SET_DETERMINATION
| SET_HIGHLIGHTING
| SET_TEXT;
TS2304:找不到名称“SET_DETERMINATION”。
TS2304:找不到名称“SET_HIGHLIGHTING”。
TS2304:找不到名称“SET_TEXT”。
我可以通过使用字符串值本身定义我的类型来解决这个问题,即
export type THypoAction =
'SET_DETERMINATION'
| 'SET_HIGHLIGHTING'
| 'SET_TEXT';
但这似乎比引用常量更脆弱。
有什么办法可以实现以下目标吗?
- 仅声明一次文字字符串值
- 导出带有字符串值的常量
- 定义常量字符串值的联合类型
对于上下文,我希望构建一个reducer,它将接受遵循如下接口的调度操作(仅具有更具体的有效负载)
export interface IHypoAction {
type: THypoAction;
payload?: any;
}
因此,在引用它的模块中,我需要常量及其接口的类型定义。