javascript - 元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{ AT: number; BE:数字,...}`
问题描述
我创建了这个助手来返还增值税。
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;
};
但是收到此类型错误元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型...'
有任何想法吗?
解决方案
您可以强制键入对象键,因此您的助手可以写为:
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;
};
推荐阅读
- android - 在 NodeCameraView React Native 中默认设置后置摄像头
- ajax - Wordpress、管理菜单、Ajax 400 错误请求
- flutter - Flutter 单选按钮验证器不工作
- java - 有没有办法告诉虚拟线程运行在什么载体线程上?
- pyspark - Pyspark引用具有特殊字符的列?
- javascript - 带有第二个参数的 app.use 的 async.parallel
- asp.net-mvc-5 - 如何在 ASP MVC 5 上为用户保留大型会话数据而不达到 cookie 大小限制或在每个请求上查询数据库?
- python-3.x - 两个目录中的文件比较
- javascript - 为什么我不能在 JS 中导入模块
- refresh - 添加新文件时,Power Query 导入并刷新文件夹中的所有文件