Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular2 typescript create new object dynamically with class name from variable?

I tried to get to work some sort of:

export class SomeComponent {

  constructor() {

    let className: string = "TheClass";

    /* should be the same as .. = new TheClass() */
    let superSpecial = new className();

  }

}

I have not yet figured out how to do this? Could anyone help me?

like image 588
Max Solid Avatar asked Oct 19 '25 03:10

Max Solid


1 Answers

There are a few ways to do this. If your class is in a separate module:

SomeClass.ts

export class SomeClass {

    constructor(arg: string) {
        console.log(arg);
    }
}

App.ts

import * as s from "./SomeClass";

var instance = new s["SomeClass"]("param");

Or using namespaces:

namespace Test {

    export class SomeClass {

        constructor(arg: string) {
            console.log(arg);
        }
    }
}

var instance = new Test["SomeClass"]("param");
like image 147
Saravana Avatar answered Oct 20 '25 17:10

Saravana