Node.js 没有带类型为';的参数的索引签名;字符串';在类型上找到
我来自移动应用程序开发,对typescript没有太多经验。如何声明[string:any]形式的映射对象 错误出现在第行:map[key]=value 元素隐式具有“any”类型,因为类型为“string”的表达式不能用于索引类型为“Object” 在“Object”类型上找不到具有“string”类型参数的索引签名。ts(7053)Node.js 没有带类型为';的参数的索引签名;字符串';在类型上找到,node.js,typescript,dictionary,google-cloud-firestore,Node.js,Typescript,Dictionary,Google Cloud Firestore,我来自移动应用程序开发,对typescript没有太多经验。如何声明[string:any]形式的映射对象 错误出现在第行:map[key]=value 元素隐式具有“any”类型,因为类型为“string”的表达式不能用于索引类型为“Object” 在“Object”类型上找不到具有“string”类型参数的索引签名。ts(7053) 您通常不想使用新对象()。相反,可以这样定义map: var映射:{[key:string]:any}={};//字符串的地图->你喜欢的任何东西 如果可以的
您通常不想使用
新对象()
。相反,可以这样定义map
:
var映射:{[key:string]:any}={};//字符串的地图->你喜欢的任何东西
如果可以的话,最好用更具体的东西替换
任何,但这应该从一开始就行。正如上面提到的@Tim Perry,直接使用object。我建议你自己编一本字典
declare global {
type Dictionary<T> = { [key: string]: T };
}
声明全局{
类型Dictionary={[key:string]:T};
}
那么你就可以使用
const map: Dictionary<number> = {} // if you want to store number....
const-map:Dictionary={}//如果要存储数字。。。。
更容易阅读。您需要声明记录类型
var map: Record<string, any> = {};
var-map:Record={};
var map: Record<string, any> = {};