今天在写ts
文件的过程中,我遍历了一个对象,然后取值的时候发现爆红,如下图
经过我一通排查(原因我对ts也不是很熟练),了解到大致意思是说key
的值类型不是string
类型,在javascript
中是默认给你转好的,而在Typescript
中则不是,因此要么转,要么声明,要么忽略…
tsconfig.json
中compilerOptions
里面新增忽略的代码,就不会报错了,如下"suppressImplicitAnyIndexErrors": true
Interface
里对其进行声明,如下所示:interface IComponent {
[key:string]: any
}
const allGloablComponent:IComponent = {SvgIcon,Pagination};
或者可以直接省略interface
,const
后面定义类型也OK
keyof
进行判断之前这样的,爆红:
allGloablComponent[key]
修复之后这样写:
allGloablComponent[key as keyof typeof allGloablComponent]