Можно ли переопределить объявления типов локального модуля? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь переопределить внешний вид того или иного модуля машинописи для всех, кто его импортирует.

Это потому, что у меня есть некоторые правила веб-пакета, которые на самом деле меняют то, что экспортирует этот модуль во время переноса.

У меня есть объявление пользовательского модуля в custom.d.ts файле:

declare module '*.worker' {
  class WebpackWorker extends Worker {
    constructor();
  }

  export default WebpackWorker;
}

И затем я импортирую этот модуль как

import MyWorker from './test.worker';

const worker = new MyWorker();

Тем не менее, я не могу заставить объявление пользовательского модуля распознать, что оно относится к типам, объявленным в моем файле custom.d.ts. Кто-нибудь знает, возможно ли переопределение экспортируемых типов локального модуля?

1 Ответ

0 голосов
/ 04 апреля 2019

Одно из возможных решений - сказать, что FileA.ts имеет экспорт под названием Human, и во время компиляции webpack, когда Human получает свое имя, измененное на Animal, - это добавить тип объявления в этот класс и импортировать что-то вроде ...

export class Human {
    bark() {
        return "bark bark"
    }
}
export declare class Animal extends Human {};

, затем в FileB.ts вы можете импортировать Animal и использовать его с типом security.

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