【发布时间】:2022-11-18 17:05:46
【问题描述】:
我试图重构只读数组的类型,但没有成功:
const store: Record<string, any> = {
aaa: '123',
bbb: null,
ccc: []
}
const getValues = <Keys extends readonly string[]>(keys: Keys): ReadonlyArray<[Keys[number], unknown]> => {
return keys.map((key) => ([key, key in store ? store[key] : null]))
}
const keyArr = ['aaa', 'bbb'] as const
getValues(keyArr) // current getValues function types: const getValues: <readonly ["aaa", "bbb"]>(keys: readonly ["aaa", "bbb"]) => readonly ["aaa" | "bbb", unknown][]
// I want: const getValues: <readonly ["aaa", "bbb"]>(keys: readonly ["aaa", "bbb"]) => readonly [["aaa", unknown], ["bbb", unknown]]
这是打字稿Playground code link。
【问题讨论】:
标签: typescript