Идентификатор '*' уже был объявлен проблемой при объявлении расширенного окна в файле объявлений и расширении окна в скрипте предварительной загрузки - PullRequest
0 голосов
/ 06 мая 2020

У меня есть проект со следующей файловой структурой

src/
  main/
    index.ts  
  preload/
    index.ts
  renderer/
    index.ts
  index.html
build/
  main.js
  preload.js
  renderer.js
  index.html

У меня есть следующий файл объявлений:

declare global {
  interface Window {
    myIpcRenderer?: MyIpcRenderer;
  }
}

export interface MyIpcRenderer {
  invoke(channel: string, ...args: any[]): Promise<any>;
  send(channel: string, ...args: any[]): void;
  on(channel: string, listener: (...args: any[]) => void): () => void;
}

Я установил свойство myIpcRenderer в окне в сценарии предварительной загрузки :

contextBridge.exposeInMainWorld("myIpcRenderer", {
  invoke: (channel: string, ...args: any[]) =>
    callIpcRenderer("invoke", channel, ...args),
  send: (channel: string, ...args: any[]) =>
    callIpcRenderer("send", channel, ...args),
  on: (channel: string, ...args: any[]) =>
    callIpcRenderer("on", channel, ...args),
});

Каким-то образом это вызывает следующую ошибку времени выполнения tslib:

tslib.es6.js:1 Uncaught SyntaxError: Identifier 'myIpcRenderer' has already been declared

Я использую накопительный пакет в качестве сборщика и выводю модули es.

Что есть решение для этого?

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