代码如下
const tup = ['A', 'B', 'C'] as const;
type TupleToObject<T extends readonly (string | number | symbol)[]> = {
[K in T[number]]: K
}
type tupleObj = TupleToObject<typeof tup>
const res: tupleObj = tup.reduce((res, item) => {
res[item] = item;
return res;
}, {} as tupleObj);
在 reduce 中,res[item] = item这一行报错,信息如下,求一个原因和解决办法。
你这类型限制的太死了
实际上就是下面这种:总共有3*3=9种组合
res['B']='C'
但是你规定的A只能对应A所以就报错了