【问题标题】:Cannot assign to read only property 'x' of object '[object Object]'无法分配给对象“[object Object]”的只读属性“x”
【发布时间】:2021-10-04 10:43:43
【问题描述】:

将我的项目升级到 Angular 12/TypeScript 4.3.5 后,我收到了上述错误。这是我的代码:

for (const metric of metrics) {
    if (!metric.focalThemeSubArea) {
        metric.focalThemeSubArea = metric.focalTheme;
    }
}

我的 Metric 类定义如下:

export class ScaMetricGraphType {
    public focalTheme: string;
    public focalThemeSubArea: string;
    public isActive: boolean;
    public name: string;
}

我没有看到任何关于 focalThemeSubArea 的只读内容。虽然我确实在循环中将 metric 声明为 const,但这并不意味着它的成员变为只读。除非我不知道 TypeScript 发生了什么变化。

【问题讨论】:

  • 如果直接从 JSON 文件导入 metrics 数组,可能会出现此错误。你从哪里得到metrics
  • 它来自服务,所以它是 JSON,虽然不是来自“文件”本身。

标签: angular typescript


【解决方案1】:

对不起,社区。这是我的开发环境的一个问题。我正在从 7 升级到 12,并尝试在 angular.json 和 tsconfig.json 中尽可能保持一致。

我仍然不确定究竟是什么原因造成的,所以这真的不是一个答案。但我确实使用默认设置创建了一个新的 Angular 12 应用程序,并在那里运行我的代码,它运行良好。

感谢您对此的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-30
    • 2018-07-30
    • 2021-05-12
    • 2019-04-27
    • 2023-03-13
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多