Javascript 元素隐式地具有一个';任何';类型,因为表达式的类型为';字符串';can';t用于索引类型';{AT:number;BE:number,…}`
我已创建此帮助器以返回VATJavascript 元素隐式地具有一个';任何';类型,因为表达式的类型为';字符串';can';t用于索引类型';{AT:number;BE:number,…}`,javascript,typescript,Javascript,Typescript,我已创建此帮助器以返回VAT export const hasVAT = (country: string) => { const VATRates = { AT: 20, // Austria,AT BE: 21, // Belgium,BE BG: 19, // Bulgaria,BG CZ: 21, // Czech Republic,CZ CY: 19, // Cyprus,CY DK: 25, // Denmark,DK ... }
export const hasVAT = (country: string) => {
const VATRates = {
AT: 20, // Austria,AT
BE: 21, // Belgium,BE
BG: 19, // Bulgaria,BG
CZ: 21, // Czech Republic,CZ
CY: 19, // Cyprus,CY
DK: 25, // Denmark,DK
...
};
return country in VATRates ? VATRates[country] : false;
};
但隐式接收此类型错误元素时具有“any”类型,因为“string”类型的表达式不能用于索引类型…'
有什么想法吗?您可以强制在对象键上键入,这样您的助手就可以写成:
export const hasVAT = (country: string) => {
const VATRates: {[key: string]: number} = {
AT: 20, // Austria,AT
BE: 21, // Belgium,BE
BG: 19, // Bulgaria,BG
CZ: 21, // Czech Republic,CZ
CY: 19, // Cyprus,CY
DK: 25, // Denmark,DK
};
return country in VATRates ? VATRates[country] : false;
};
增值税的类型是什么?如果您执行
const-VATRates:{[keys:string]:number}=…
您不应该得到任何错误。lol,您是100%。我忽略了这个。非常感谢。