使其成为 TS 导入路径?"/>
如何评估字符串使其成为 TS 导入路径?
考虑下面的简单函数:
import * as fr_index from "../locales/index/fr.json"
export const translate = (key: string, from: string) => {
console.log(fr_index.greeting) // hello world
console.log(from) // fr_index
console.log(key) // greeting
console.log(from.key) // undefined <-- Problem
console.log(from[key]) // undefined <-- Problem
}
如何评价
from.key
来展示hello world
?我试过
path
和/或 eval()
但没有成功。谢谢
回答如下:
// import * as fr_index from "../locales/index/fr.json"
const fr_index = { greeting: 'hello world' } as const
const DataSheet = {
fr_index,
} as const
export const translate = <F extends keyof typeof DataSheet, K extends keyof typeof DataSheet[F]>(
from: F, key: K
) => {
return DataSheet[from][key]
}
let s = translate('fr_index', 'greeting')
// ^?
// let s: "hello world"
更多推荐
如何评估字符串使其成为 TS 导入路径?
发布评论