打字稿:在名称空间中使用new

时间:2020-02-12 13:56:43

标签: typescript definitelytyped

我正在为私有包创建DefinitelyTyped(我无法更改源代码),并且找不到任何实现这种类型的方法:

  GlobalNameSpace.SuperClass = function(arg) {}
  GlobalNameSpace.superClass = new GlobalNameSpace.SuperClass(args)

我的尝试:

declare namespace GlobalNameSpace {
    class SuperClass {}

    const superClass = new GlobalNameSpace.SuperClass(args);
}

不幸的是,我在VS Code中出错。

A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

任何想法我该如何解决?

2 个答案:

答案 0 :(得分:0)

这个怎么样?

declare namespace GlobalNameSpace {
    export class SuperClass { }
    export const superClass: typeof SuperClass;
}

答案 1 :(得分:0)

https://discord.gg/typescript上@elderapo的帮助下解决了该问题

最终解决方案:

declare namespace GlobalNamespace {
    class SuperKomp {
        constructor();
        public on(key: string): void;
    }

    const komp: GlobalNamespace.SuperKomp;
}

GlobalNamespace.komp.on('click');