第三方库更新后readonly X[]无法赋值给X[]的TypeScript错误如何修复?
修复步骤
1. 修正字段名引用
第三方库新版将Foo类的字段从field改名为foo,首先要把调用代码里的:
print(foo.field)
改为:
print(foo.foo)
2. 解决只读数组类型不兼容问题
根据print函数的实际需求,选择以下两种方案之一:
方案A:修改print函数支持只读数组(推荐,无额外转换开销)
如果print函数仅对数组做读取操作(不修改数组元素或长度),直接把参数类型改为readonly X[]——它同时兼容普通X[]和只读readonly X[]:
function print(items: readonly X[]): string { // 示例处理逻辑 return items.map(item => `${item}`).join(' | '); }
方案B:将只读数组转为普通数组
如果print函数必须接收可变X[](内部会修改数组),用扩展运算符或Array.from做转换:
// 扩展运算符方式 print([...foo.foo]); // Array.from方式 print(Array.from(foo.foo));
内容的提问来源于stack exchange,提问作者Sergino
相关产品推荐
相关产品推荐

