我正在尝试检查特定的key
是否仅分配了一组values
。此值在Typescript中列为enum
。
请注意,我这样做是要像下面说明的那样直接检查values
,但是要检查enum
类型。
Check if key/value is in JSON
我只需要检查json
文件中使用的已知区域。
export type Regions = Na | Emea | Apac;
export interface Na {
NA: "na";
}
export interface Emea {
EMEA: "emea";
}
export interface Apac {
APAC: "apac";
}
我需要编写类似于下面的函数,该函数仅对键
Region
的已知值进行检查function isValidRegion(candidate: any): candidate is Regions {
// if (candidate is one the type of Regions
// console.log("Regions valid");
// else
// console.log("invalid Regions are used in input JSON");
result = candidate;
return result;
}
最佳答案
做这样的事情:
function isValidRegion(candidate: any): candidate is Regions {
return Object.keys(Regions).some(region => region === candidate)
}