Quantcast
Viewing all articles
Browse latest Browse all 8691

【小ネタ】Electron + TypeScript で nodeIntegration: false (preload.ts)

TL;DR

参考にさせていただきました

経過

TypeScript では以下のような preloadスクリプトはエラーになってしまう。

src/preload.ts
import{ipcRenderer}from'electron';process.once('loaded',()=>{window.ipcRenderer=ipcRenderer;});

プロパティ 'ipcRenderer' は型 'Window & typeof globalThis' に存在しません。ts(2339)

で、やや強引だが次のような型定義ファイルで Windowの名前空間を拡張した。

@types/global.d.ts
import{IpcRenderer}from'electron';declareglobal{interfaceWindow{ipcRenderer:IpcRenderer;}}

とりあえずこれで target: 'web'でもメインプロセスとIPC通信は出来るようになった。

src/renderer.ts
window.ipcRenderer.send('async-message','ping!');

Node.js の fspathの(一部)もプリロードしたいがまだやり方がわからない...

結論

TypeScript わからん


Viewing all articles
Browse latest Browse all 8691

Trending Articles