Typescript 使用类型脚本中的开关获取函数的安全值
我有一个函数,它的参数可以有3个不同的值。 此函数根据参数返回一个值,因此可以返回三个不同的值 所以我使用了一个开关,它比较参数来确定要返回的值。因此,对于参数的每个可能值,我都有一个安全值 但是,如果我用一个参数调用函数,返回的值是不确定的,TypeScript保留了其他2个值的可能性Typescript 使用类型脚本中的开关获取函数的安全值,typescript,types,switch-statement,type-safety,Typescript,Types,Switch Statement,Type Safety,我有一个函数,它的参数可以有3个不同的值。 此函数根据参数返回一个值,因此可以返回三个不同的值 所以我使用了一个开关,它比较参数来确定要返回的值。因此,对于参数的每个可能值,我都有一个安全值 但是,如果我用一个参数调用函数,返回的值是不确定的,TypeScript保留了其他2个值的可能性 函数get(值:“字符串”|“数字”|“布尔”){ 开关(值){ 大小写“字符串”: 返回“A”; 案例“编号”: 返回1; 案例“布尔”: 返回true; } } var test1=获取(“数字”);
函数get(值:“字符串”|“数字”|“布尔”){
开关(值){
大小写“字符串”:
返回“A”;
案例“编号”:
返回1;
案例“布尔”:
返回true;
}
}
var test1=获取(“数字”);
那么,如何获得安全值呢?我必须进行枚举吗?提前感谢使用泛型,与将
值
s映射到返回值的对象结合使用:
const map = {
string: 'A',
number: 1,
boolean: true,
};
type MapType = typeof map;
function get<T extends keyof MapType>(value: T) {
return map[value];
}
var test1 = get("number");
const map = {
string: 'A',
number: 1,
boolean: true,
} as const;