【问题标题】:Importing Electron classes with Typescript使用 Typescript 导入电子类
【发布时间】:2015-09-26 22:18:18
【问题描述】:

如何将 Electron 类导入 Typescript 文件,以便智能感知功能正常运行?

例如,我想转这个:

var BrowserWindow = require('browser-window');
var app = require('app');
app.on("ready", function() {
  var mainWindow = new BrowserWindow({
    width: 600,
    height: 800
  });
});

变成这样的东西(不起作用):

/// <reference path="./typings/github-electron/github-electron.d.ts"/>
var app = GitHubElectron.App;
app.on("ready", function() {
  var mainWindow = new GitHubElectron.BrowserWindow({
    width: 600,
    height: 800
  });
});

【问题讨论】:

    标签: typescript electron


    【解决方案1】:

    require函数调用的返回值上使用类型注解:

    var BrowserWindow: GithubElectron.BrowserWindow = require('browser-window');
    var app = GitHubElectron.App = require('app');
    app.on("ready", function() {
      var mainWindow = new BrowserWindow({
        width: 600,
        height: 800
      });
    });
    

    【讨论】:

    • 谢谢!两个问题,虽然我不确定它们是否相关:(1)运行应用程序时,它会抛出未定义 GitHubElectron 的未捕获异常。在 github-electron d.ts 中,这是它定义的模块。也许我误解了如何引用该类,但我是 TS 和 Electron 的新手。 (2) 创建浏览器窗口的新实例时出错。 “不能将 'new' 与类型缺少调用或构造签名的表达式一起使用。”当我将选项定义为 GitHubElectron.BrowserWindowOptions 时,它似乎可以编译。我不确定这是否正确。
    • 定义通常随测试一起提供。在这种情况下:github.com/borisyankov/DefinitelyTyped/blob/master/… 是您如何使用定义的指导
    • 完美,这将节省我很多猜测。
    • @inyourcorner 你能分享一下你能够将 BrowserWIndowsOptions 传递给 BrowserWindow 构造函数的代码吗?我无法让它工作。
    • @rmchndrng 从 basarat 的链接中,他们使用 import 而不是 var 来引入 BrowserWindow 类。我遇到了同样的问题,这样做可以解决问题。
    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 2019-02-08
    • 2021-12-07
    • 1970-01-01
    • 2019-08-11
    • 2017-03-11
    • 2019-04-14
    • 2018-07-31
    相关资源
    最近更新 更多