You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目TS1312错误咨询:RESOLUTION属性赋值语法问题

Angular中TS1312错误:对象字面量属性赋值错误的解决方法

问题描述

我需要将以下MET数据在HTML页面中展示:

MET:[
 {
    LABEL:"WILHELMSEN HLD ASA",
    ISINCODE:"NO0010571698",
    RECORD_DATE:"2022-09-16",
    EVENT_DATE:"2022-09-30",
    EVENT_TYPE:"AG Ordinaire",
    SOLDE:15000.00,
    NUMERO_AG:10642,
    CREAT_DATE:"2022-04-01",
    MOD_DATE:"2022-04-01",
    EMETTEUR:"408659",
    DEPOSITAIRE:"CA000005775300",
    ISCONFIRMED:1,
    ISSRD2ELIGIBLE:1,
    ADRESSE1:"Strandveien 20",
    ADRESSE2:"",
    LOCALITE:"LYSAKER",
    CODEPOSTAL:0,
    PAYS:"NOR",
    STATUTAG:9,
    URL:"",
    RESOLUTION:[
     {
       REF:"01",
     },
    ]
 }
],

目前已实现MET数据的HTML渲染,但在todo.service.ts中定义嵌套的RESOLUTION数组时,出现TS1312错误,错误信息如下:

src/app/todo/todo.service.ts:31:20 - error TS1312: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.

31         RESOLUTION = [

相关代码如下:

todo.service.ts

export class TodoService {
  MET = [
    {
      LABEL: "WILHELMSEN",
      ISINCODE: "NO0010571698",
      RECORD_DATE: "2022-09-16",
      EVENT_DATE: "2022-09-30",
      EVENT_TYPE: "AG Ordinaire",
      SOLDE: 15000.0,
      NUMERO_AG: 10642,
      CREAT_DATE: "2022-04-01",
      MOD_DATE: "2022-04-01",
      EMETTEUR: "408659",
      DEPOSITAIRE: "CA000005775300",
      ISCONFIRMED: 1,
      ISSRD2ELIGIBLE: 1,
      ADRESSE1: "Strand 20",
      ADRESSE2: "",
      LOCALITE: "LYS",
      CODEPOSTAL: 0,
      PAYS: "NOR",
      STATUTAG: 9,
      URL: "",

      RESOLUTION = [
        {
          REF: "01",
        },
      ],
    },
  ];

  constructor() {}
}

todo.component.ts

export class TodoComponent implements OnInit {
  MET: any;

  constructor(private todoService: TodoService) {}

  ngOnInit() {
    this.MET = this.todoService.MET;
  }
}

todo.html

<div class="container text-center" *ngIf="MET">
   <h2 class="pt-3 pb-3">HTML Table</h2>
   <table class="mb-5">
      <tr>
         <th>Isin</th>
         <th>Dénomination</th>
         <th>Date de création</th>
         <th>Date de modification</th>
         <th>Code d'identification</th>
         <th>Status</th>
         <th>Réference du dépositaire</th>
         <th>Confirmé</th>
         <th>Eligible à SRD2</th>
         <th>Lieu de l'événement</th>
      </tr>
      <tr *ngFor="let line of MET">
         <td>{{ line.ISINCODE }} </td>
         <td>{{ line.LABEL }} </td>
         <td>{{ line.CREAT_DATE }} </td>
         <td>{{ line.MOD_DATE }} </td>
         <td>{{ line.EMETTEUR}} </td>
         <td>{{ line.STATUTAG }} </td>
         <td>{{ line.DEPOSITAIRE }} </td>
         <td>{{ line.ISCONFIRMED }} </td>
         <td>{{ line.ISSRD2ELIGIBLE }} </td>
         <td>{{ line.ADRESSE1 }} {{ line.LOCALITE}} </td>
      </tr>
   </table>
</div>

请问该错误的原因是什么?如何解决?


错误原因

在TypeScript/JavaScript的对象字面量中,属性与对应值之间必须用冒号:分隔,你在定义RESOLUTION属性时错误使用了等号=。等号=仅能在解构赋值场景下跟在属性名后,常规对象字面量不允许这种写法,因此触发TS1312错误。

解决方法

将RESOLUTION = [修改为RESOLUTION: [,也就是把属性赋值的等号替换为冒号即可。修改后的todo.service.ts代码如下:

export class TodoService {
  MET = [
    {
      LABEL: "WILHELMSEN",
      ISINCODE: "NO0010571698",
      RECORD_DATE: "2022-09-16",
      EVENT_DATE: "2022-09-30",
      EVENT_TYPE: "AG Ordinaire",
      SOLDE: 15000.0,
      NUMERO_AG: 10642,
      CREAT_DATE: "2022-04-01",
      MOD_DATE: "2022-04-01",
      EMETTEUR: "408659",
      DEPOSITAIRE: "CA000005775300",
      ISCONFIRMED: 1,
      ISSRD2ELIGIBLE: 1,
      ADRESSE1: "Strand 20",
      ADRESSE2: "",
      LOCALITE: "LYS",
      CODEPOSTAL: 0,
      PAYS: "NOR",
      STATUTAG: 9,
      URL: "",

      // 替换=为:
      RESOLUTION: [
        {
          REF: "01",
        },
      ],
    },
  ];

  constructor() {}
}

内容的提问来源于stack exchange,提问作者pops1348

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:01:12