javascript - การแยกค่าด้วย ES6 พร้อมกับ this ภายในคลาส
ฉันมีฟังก์ชันที่คืนค่าเป็นทูเพิล [number, number, number] ฉันต้องการใช้การแยกค่าเพื่อนำค่าที่คืนมาตั้งให้กับตัวแปรของคลาสของฉันดังนี้:
let [this.a, this.b, this.c] = functionThatReturnsTupleWithThreeNumbers()
แต่นี่ใช้ไม่ได้
คำตอบ #1
เพียงแค่ลบ let ออก แล้วคุณก็พร้อมใช้งานได้เลย:
class Foo {
a;
b;
c;
bar() {
[this.a, this.b, this.c] = [1, 2, 3];
}
}
const foo = new Foo();
foo.bar();
console.log(foo);ข้อมูลเพิ่มเติมที่นี่
สนามเด็กเล่น Typescript
คำตอบ #2
คุณจำเป็นต้องมีพร็อพในคลาสของคุณและทำการแยกทูเพิลของคุณออกเป็นพร็อพเหล่านั้น:
class MyClass {
a: number;
b: number;
c: number;
constructor(tuple: ReadonlyArray<number>) {
[this.a, this.b, this.c] = tuple;
}
}
