Машинопись: Использование нового в пространстве имен - PullRequest
0 голосов
/ 12 февраля 2020

Я работаю над созданием DefinitiveTyped для частного пакета (я не могу изменить исходный код), и я не могу найти способ реализовать тип, подобный этому:

  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 голосов
/ 13 февраля 2020

Исправлено с помощью @elderapo на https://discord.gg/typescript

Окончательное решение:

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

    const komp: GlobalNamespace.SuperKomp;
}

GlobalNamespace.komp.on('click');
0 голосов
/ 12 февраля 2020

Как насчет этого:

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