Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 元素隐式地具有一个';任何';类型,因为表达式的类型为';字符串';can';t用于索引类型';{AT:number;BE:number,…}`_Javascript_Typescript - Fatal编程技术网

Javascript 元素隐式地具有一个';任何';类型,因为表达式的类型为';字符串';can';t用于索引类型';{AT:number;BE:number,…}`

Javascript 元素隐式地具有一个';任何';类型,因为表达式的类型为';字符串';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 ... }

我已创建此帮助器以返回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
   ...
 };
 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%。我忽略了这个。非常感谢。