下面的代碼工作:爲什麼我必須使用「new BrowserWindow」而不是「new Electron.BrowserWindow」實例化Electron.BrowserWindow?
import { app, BrowserWindow } from 'electron';
class Main {
static mainWindow: Electron.BrowserWindow;
static application: Electron.App;
private static onWindowAllClosed()
{
if (process.platform !== 'darwin')
Main.application.quit();
}
private static onClose()
{
Main.mainWindow = null;
}
private static onReady()
{
Main.mainWindow = new BrowserWindow({ width: 800, height: 600 })
Main.mainWindow.loadURL('file://' + __dirname + '/index.html');
Main.mainWindow.on('closed', Main.onClose);
}
static main(app: Electron.App)
{
Main.application = app;
Main.application.on('window-all-closed', Main.onWindowAllClosed);
Main.application.on('ready', Main.onReady);
}
}
Main.main(app);
當我嘗試(在onReady),而不是做:
Main.mainWindow = new Electron.BrowserWindow({ width: 800, height: 600 })
我收到的電子運行應用程序時出現錯誤:
Uncaught Exception: ReferenceError: Electron is not defined
代碼在運行「tsc」時編譯得很好。
綜觀打字定義,我看到Electron.BrowserWindow是一類,而BrowserWindow(一個被從導入模塊解體)的CommonElectron接口下的定義爲:
BrowserWindow: typeof Electron.BrowserWindow;