Как я могу расширить класс, объявленный как пространство имен - PullRequest
0 голосов
/ 08 мая 2018

Существует проблема при импорте библиотек, определенных в typesciprt 2.7, как показано ниже.

В официальном машинописном документе он предоставляет шаблон "module-class". Но нет упоминания о расширении класса модуля в этом документе. В этом случае, когда существует класс, который наследует, это часто делается следующим образом. Однако, когда я на самом деле ссылаюсь на него, возникают ошибки компиляции, которые не находят унаследованные свойства.

Error

Property '...' does not exist on type '...'.

Как мы можем решить это?

Обратите внимание, что я использую опцию esModuleInterop compile, добавленную в 2.7.


ниже приведен пример кода ситуации.

Родительский код и определение

// Code
export default class Parent {
    on() {
        // ...
    }
}

// Definition
declare class Parent {
    on(): this
}

export default Parent;

Определение детской библиотеки

import * as Parent from "parent";

declare class Child extends Parent {
    // ...
    // Parent's "on" method can be noticed here
}

declare namespace Child {
    // ISSUE
}

Использование

import Child from "child";

const child = new Child();

// `Property 'on' does not exist on type 'Child'`.
child.on();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...