TypeScript联合类型场景下TS2322构造函数类型不匹配问题求助
TS2322错误原因分析
这个错误的核心是TypeScript中函数参数的逆变特性,具体到代码里:
- 你定义的
sheetType是构造函数类型,要求它能接受U | U[]类型的参数——意味着这个构造函数必须同时能处理U和U[]两种输入。 - 但
SingleModel的构造函数仅接受U类型参数,传入U[]会触发类型错误;同理,MultiModel的构造函数仅接受U[]类型参数,传入U也会报错。 - 函数参数遵循逆变规则:当需要一个能接受
A | B的函数时,传入的函数必须能接受A并且能接受B,而非只兼容其中一种类型。因此SingleModel和MultiModel的构造函数都不符合sheetType的要求,导致TS2322类型不匹配错误。
内容的提问来源于stack exchange,提问作者user2042869
相关产品推荐
相关产品推荐

