如何推断作为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]
可以解包。如果我要向classX
添加一个字符串属性,该怎么办?也许您需要将K
限制为可以解包的密钥或类似的内容。。。我想看看,也许有什么有用的