如何修改只读值?



fetchOptions: Readonly<HttpFetchOptionsWithPath>这个值,我想覆盖它的一个属性。 我尝试了以下方法:

((fetchOptions as Writable<HttpFetchOptionsWithPath>).headers as Writable<any>) = {
'new-value': '123',
...(fetchOptions.headers || {}),
};

但仍然收到TypeError: Cannot assign to read only property 'headers' of object '#<Request>'错误。

执行的 js 代码如下所示:

fetchOptions.headers = __assign({ 'new-value': '123' }, (fetchOptions.headers || {}));

知道我在这里做错了什么吗?

您不能修改只读值..您可以做的是将这些对象克隆到新实例中并继续使用新实例...

Object.assign(newVariable, JSON.parse(JSON.stringify(oldVariable)));

这也将完成这项工作:

const newVariable={...oldVariable, propertyToModify:value}

使用此语句,您可以复制和覆盖属性

var obj={...originalObj,[readOnlyProp:value]}

最新更新