Rea*_*nkm 9 enums typescript reactjs redux
我正在使用 Typescript、Redux 和 React,所有这些对我来说都是新的,所以这可能有一个我没有看到的简单修复。
我有一个 actions.ts 文件,其中包含一个像这样的枚举:
export enum AnimalTypes {
CAT = 'CAT',
DOG = 'DOG'
}
Run Code Online (Sandbox Code Playgroud)
我将它导入到我的 reducers.ts 文件中,并试图在这样的日志语句中使用它:
import {AnimalTypes} from './actions';
export function someFunction() {
// Print the word "CAT"
console.log(AnimalTypes[AnimalTypes.CAT]);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试启动我的网站时出现以下错误:
TypeError: Cannot read property 'CAT' of undefined
at someFunction (reducer.ts:5)
at combineReducers.js:20
etc.
Run Code Online (Sandbox Code Playgroud)
我的 IDE 没有给我任何错误,TSLint 也没有。我在网上阅读了一堆试图找到答案的文章,但最接近我的人是在他们的枚举中没有“export”关键字的人,而我有。
这里会发生什么?我会很感激任何帮助。
谢谢你。
编辑:这不是它有问题的反向映射,而是枚举的任何用法。这只是我能想到的最短用法。我实际上是在 switch 语句中使用它:
import {AnimalTypes} from './actions';
export function otherFunction(animal) {
switch (animal.type) {
case AnimalTypes.CAT:
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
当我构建上述代码时,出现此错误 Uncaught TypeError: Cannot read property 'CAT' of undefined
打字稿的这一功能称为“反向映射”,根据文档,它仅支持数字枚举。这是来自https://www.typescriptlang.org/docs/handbook/enums.html的片段:
除了创建具有成员属性名称的对象之外,数字枚举成员还获得从枚举值到枚举名称的反向映射。
| 归档时间: |
|
| 查看次数: |
7558 次 |
| 最近记录: |