考虑以下代码:
enum MyEnum {
Enum1,
Enum2
}
function switchOverEnum(myEnum: MyEnum) {
switch (myEnum) {
case MyEnum.Enum1:
console.log('it is an enum1');
break;
// I am missing the case MyEnum.Enum2 here,
// but the TypeScript compiler does not complain
}
}
我在使用 create-react-app
创建的项目中使用它。我的期望是 TypeScript 会抱怨案例 MyEnum.Enum2
没有得到处理,但事实并非如此。我如何配置 TypeScript 编译器来这样做?
答案 0 :(得分:1)
这样做
const filter = [{"fieldName":"userid","fieldValue":"12345"},{"fieldName":"username","fieldValue":"myname"}];
const filterOut = Object.fromEntries(
filter.map(o => [o.fieldName, o.fieldValue])
);
console.log(filterOut);
或者使用匿名函数
enum MyEnum {
Enum1,
Enum2
}
function switchOverEnum(myEnum: MyEnum) {
switch (myEnum) {
case MyEnum.Enum1:
console.log('it is an enum1');
break;
case MyEnum.Enum2:
console.log('it is an enum2');
break;
default:
const exhaustiveCheck: never = myEnum;
throw new Error(`Unhandled Enum case: ${exhaustiveCheck}`);
}
}
看这里playground
更多方式见here