如何在不使用类的模块名称的情况下为类创建新对象

How to create new object for class without using its module name?

本文关键字:创建 新对象 对象 情况下 模块      更新时间:2023-09-26

我有一个如下所示的类,它位于一个名为File1 的单独文件中

module test {
    export class myClass{
        constructor(MyName: any) {
        }
    }
}

在另一个名为File2的文件中,我为上面的类创建对象,如下所示。

module test {
    class myClass2{
        var object = new myClass("name");
    }
}

如果上面的对象创建类型脚本代码被转换为javascript代码,它看起来像这个

var object = new test.myClass("name");

但实际上我需要它在js 中看起来像这样

var object = new myClass("name");

有人能帮我做这个吗?

开始:

module test {
    export class myClass{
        constructor(MyName: any) {
        }
    }
}
module test {
    var myClass = test.myClass;
    var object = new myClass("name");    
}

生成的js:

var myClass = test.myClass;
var object = new myClass("name");

试试

更新:如果你不想在js中看到任何test.,不要把类放在模块中,即:

class myClass{
    constructor(MyName: any) {
    }
}

module test {   
    var object = new myClass("name");    
}

更新2:由于要使用typescript中的现有Js,因此需要使用环境声明,即declare:

declare class myClass{
    constructor(MyName: any);
}

module test {   
    var object = new myClass("name");    
}