如何推断作为typescript中对象属性的数组的类型?

如何推断作为typescript中对象属性的数组的类型?,typescript,Typescript,我试图用一个函数初始化一个类实例属性。我希望实例属性类型限制为数组。我试图使用typescripts推断来解包T X类{ 阵列 } 类型unpacket=T扩展数组?U:从来没有 函数setDefault(对象:T,键:K,值:unpacket):void{ 对象[键]=[值] } setDefault(新的X(),'arr',1); 遗憾的是,赋值对象[key]=[value]给了我编译器错误: TS2322:类型“unpacket[]”不能分配给类型“T[K]”。 我觉得这是一项简单的任

我试图用一个函数初始化一个类实例属性。我希望实例属性类型限制为
数组
。我试图使用typescripts推断来解包
T

X类{
阵列
}
类型unpacket=T扩展数组?U:从来没有
函数setDefault(对象:T,键:K,值:unpacket):void{
对象[键]=[值]
}
setDefault(新的X(),'arr',1);

遗憾的是,赋值
对象[key]=[value]
给了我编译器错误:
TS2322:类型“unpacket[]”不能分配给类型“T[K]”。


我觉得这是一项简单的任务,但我就是想不明白为什么这样做不起作用。

如果将
T
内部
setDefault
替换为
X
,错误就会消失。我不完全确定,但是这里可能不可能使用完全通用的
T
keyof T
组合,因为您假定
T[K]
可以解包。如果我要向class
X
添加一个字符串属性,该怎么办?也许您需要将
K
限制为可以解包的密钥或类似的内容。。。我想看看,也许有什么有用的