下面的代码工作:为什么我必须使用“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;