Как переопределить функцию в объединенном пространстве имен в машинописи - PullRequest
0 голосов
/ 09 января 2019

Допустим, у меня есть пространство имен, определенное в файле .d.ts, например:

namespace a.b.c {
   export function hello() { console.log('hello');}
}

Есть ли способ переопределить hello (), чтобы сделать что-то еще?

В настоящее время, когда я пытаюсь переопределить его,

namespace a.b.c {
    export function hello() {console.log('hi')}
}

Я получаю сообщение об ошибке, когда пытаюсь что-то вроде этого:

ошибка TS2384: все сигнатуры перегрузки должны быть окружающими или не окружающими.

Предположим, что я не могу изменить .d.ts.

Это не должно быть красиво, но, в конце концов, мне нужно позвонить

a.b.c.hello();

и получить значение из новой функции.

1 Ответ

0 голосов
/ 09 января 2019

Ну, вы сказали, что это не должно быть красиво .... это работает для вас:

namespace a.b.c {
    export function hello() {
        const elem = document.createElement("p");
        elem.innerText = "Hello";
        document.body.append(elem);
    }
}

a.b.c["hello"] = () => {
    const elem = document.createElement("p");
    elem.innerText = "HI!";
    document.body.append(elem);
}

a.b.c.hello();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...