【发布时间】:2019-08-13 11:44:15
【问题描述】:
我已经定义了一个对象:
const parsers = {
belgianMobile: (input: string) =>
input.replace(/^(0032|0)(\d{3})(\d{2})(\d{2})(\d{2})/, '$1$2 $3 $4 $5').replace('0032', '+ 32 '),
};
我现在想通过一个键来访问这个对象的属性(稍后当我添加多个解析器时):
const clean = cleanNumber(text);
const [key] = Object.entries(validations).find(([key, regex]) => regex.test(clean));
return ((parsers[key](text)) && parsers[key](clean)) || text;
但这是打字稿抛出的错误:
元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{ belgianMobile: (input: string) => string; }'。 在 '{ belgianMobile: (input: string) => string; 类型上找不到带有“string”类型参数的索引签名}'。
【问题讨论】:
标签: typescript object key