如何将 javascript 对象解构赋值给已在 class 范围内声明的变量

How to perform a destructuring assignment of a javascript object to already declared variables inside the scope of a class

我需要你的帮助,因为我正试图在已经在 class 的范围内声明的变量中获取 javascript 对象的解构赋值......也就是说,我需要使用 {this.property, ... }

({ this.baseINSS,
  this.baseIRPF,
  this.discountINSS,
  this.dependentesDiscount,
  this.discountIRPF,
  this.netSalary } = calculateSalaryFrom(element.target.value, Number(dependentes)));

上面提到的函数calculateSalaryFrom()将return

{baseINSS: "9876",
baseIRPF: 9162.9,
dependentesDiscount: 0,
discountINSS: 713.1,
discountIRPF: 1650.44,
netSalary: 7512.459999999999,
percentageDependentes: "0.00",
percentageINSS: "7.22",
percentageIRPF: "16.71",
percentageSalary: "76.07"}

我得到 error TS1005: ':' expected.({ this.baseINSS,... 顺便说一下,我正在使用 angular 和 typescript

没有冒号的对象解构只能用于有效的独立标识符。例如

({ this.baseINSS } = someObj);

将不起作用,因为 someObj 的 属性 不是 this.baseINSS - 它只是 baseINSS.

虽然您可以在解构时重命名 属性:

({ baseINSS: this.baseINSS, discountINSS: this.discountINSS } = calculateSalaryFrom(...

这会变得重复。

解构在这里效果不佳。而是遍历 属性 个名称的数组。

const obj = calculateSalaryFrom(element.target.value, Number(dependentes)));
const props = ['baseINSS', 'baseIRPH', ...] as const;
for (const prop of props) {
  this[prop] = obj[prop];
}