【发布时间】:2019-12-15 22:55:17
【问题描述】:
这是我在 Stack Overflow 上的第一篇文章,所以我会尽力解释!我有这个名为短语的 JSON 文件。JSON:
{
"start": {
"affirmative": [
some strings
],
"interrogative": [
some strings
]
},
"mid": [
some strings
]
}
所以我将它作为短语导入另一个文件,使用import phrases from '../utils/phrases.json',并在 modules.d.ts 中声明。
declare module '*.json' {
const data: any
export default data
}
我在导入phrases.json的文件中做了一个界面,就像这样:
interface Phrases {
[key: string]: TypePhrases | string[]
start: TypePhrases
mid: string[]
}
interface TypePhrases {
[key: string]: string[]
affirmative: string[]
interrogative: string[]
}
在我的课堂上,我创建了一个函数:
private getPhrases(position: string | number) {
return phrases[position]
}
所以如果我在我的类中调用这个函数,如果我给出字符串'start',我想获得起始对象,或者如果我给出'mid',我想获得字符串数组,就像这样:
const MID_STRING: string = 'mid'
console.log(this.getPhrases(MID_STRING)[0])
但是在我的返回函数中,我得到了这个错误:
元素隐含地具有“任何”类型,因为类型的表达式 '字符串 | number' 不能用于索引类型 '{ "start": { “肯定”:字符串[]; “疑问”:字符串[]; }; “中”: 细绳[]; }'。没有带有“字符串”类型参数的索引签名 在类型 '{ "start": { "affirmative": string[]; 上找到 “疑问”:字符串[]; }; “中”:字符串[]; }'。
你能帮帮我吗?我尝试了很多东西,我不知道如何解决它...谢谢!
【问题讨论】:
-
phrases是如何定义的? -
帖子已用信息编辑
标签: typescript