Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“动态添加对象属性”;直接;在JavaScript/TypeScript中添加“this”_Javascript_Typescript - Fatal编程技术网

“动态添加对象属性”;直接;在JavaScript/TypeScript中添加“this”

“动态添加对象属性”;直接;在JavaScript/TypeScript中添加“this”,javascript,typescript,Javascript,Typescript,在JavaScript/TypeScript中,是否可以将对象的属性“直接”添加到类的中(而不通过对象属性循环并以这种方式创建) 像这样的事情是行不通的(据我所知): 所以我可以这样使用它: let test = new Test(); console.log(test.ing); // outputs "ing1" if(true)使其始终进入if,而不进入else。您的代码按预期工作。请注意,您不能将变量声明为特定类型,看起来您正在尝试混合ES6和TypeScript 也许你的意思是: i

在JavaScript/TypeScript中,是否可以将对象的属性“直接”添加到类的
中(而不通过对象属性循环并以这种方式创建)

像这样的事情是行不通的(据我所知):

所以我可以这样使用它:

let test = new Test();
console.log(test.ing); // outputs "ing1"
if(true)
使其始终进入
if
,而不进入else。您的代码按预期工作。请注意,您不能将变量声明为特定类型,看起来您正在尝试混合ES6和TypeScript

也许你的意思是:

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

也许你的意思是:

如果从
测试
声明中删除
:any
TS类型,则似乎在中工作。如果从
测试
声明中删除
:any
TS类型,则似乎在中工作。
let test = new Test();
console.log(test.ing); // outputs "ing1"
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"}