gpt4 book ai didi

javascript - 在 JavaScript/TypeScript 中动态添加对象属性 "directly"到 `this`

转载 作者:行者123 更新时间:2023-12-02 15:00:31 24 4
gpt4 key购买 nike

是否可以在 JavaScript/TypeScript 中将对象的属性“直接”添加到类的 this 中(无需循环遍历对象属性并以这种方式创建它们)?

这样的东西不起作用(据我所知):

const TEST:any = {
case1: {
ing: "ing1",
ping: "ping1"
},
case2: {
ing: "ing2",
ping: "ping2"
}
}

class Test {

constructor() {
if (true) {
Object.assign(this, TEST.case1);
} else {
Object.assign(this, TEST.case2);
}
}
}

所以我可以这样使用它:

let test = new Test();
console.log(test.ing); // outputs "ing1"

最佳答案

if(true) 使其始终进入 if,而不是进入 else。您的代码按预期工作。请注意,您不能将变量声明为特定类型,看起来您正在尝试混合 ES6 和 TypeScript。

也许您的意思是以下内容(http://www.es6fiddle.net/ikqxpqh4/):

const TEST/* : any (Type information is TypeScript not ES6) */ = {
case1: {
ing: "ing1",
ping: "ping1"
},
case2: {
ing: "ing2",
ping: "ping2"
}
}

class Test {

constructor(test) {
if (test) {
Object.assign(this, TEST.case1);
} else {
Object.assign(this, TEST.case2);
}
}
}
var t1 = new Test(false);
var t2 = new Test(true);
console.log(JSON.stringify(t1), JSON.stringify(t2));
// {"ing":"ing2","ping":"ping2"} {"ing":"ing1","ping":"ping1"}

关于javascript - 在 JavaScript/TypeScript 中动态添加对象属性 "directly"到 `this`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35459187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com