【发布时间】:2020-07-08 19:47:29
【问题描述】:
很抱歉创建了另一个此类问题,但即使有类似的问题,我也无法将他们的解决方案应用于我的特定案例。
有人可以帮我处理这个 TypeScript 错误吗?
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Record<RouteName, TranslatableRoute>'.
No index signature with a parameter of type 'string' was found on type 'Record<RouteName, TranslatableRoute>'.(7053)
我正在寻找解决问题的正确方法,而不是通过破坏类型安全来解决问题。这是我遇到问题的一些虚拟示例。
type RouteName = 'home' | 'account'
interface TranslatableRoute {
cs: string;
en: string;
}
const translatableRoutes: Record<RouteName, TranslatableRoute> = {
home: {
cs: '/',
en: '/'
},
account: {
cs: '/ucet',
en: '/account'
}
}
const findRoute = '/ucet'
const findLang = 'cs'
for (const key in translatableRoutes) {
if (translatableRoutes[key][findLang] === findRoute) {
console.log(`Found route\'s name is "${key}"!`)
}
}
打字稿游乐场link。
【问题讨论】:
标签: typescript