如何纠正错误获胜是指一个值,但是在这里被用作类型

时间:2019-06-09 05:15:51

标签: typescript electron

我遵循示例here,并具有以下TypeScript代码:

const { app, BrowserWindow, ipcMain } = require('electron');

let win;

function createWindow () {
  // Create the browser window.
  win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })

  // and load the index.html of the app.
  win.loadFile('bin/js-debug/index.html')

  // Open the DevTools.
  //win.webContents.openDevTools()

  // Emitted when the window is closed.
  win.on('closed', () => {
    // Dereference the window object, usually you would store windows
    // in an array if your app supports multi windows, this is the time
    // when you should delete the corresponding element.
    win = null
  })
}

我将扩展名从.js更改为.ts,它开始显示错误。

我收到此警告:

  

变量“ win”在无法确定其类型的某些位置隐式地具有类型“ any”。ts(7034)

所以我试图像这样添加类型:

let win:BrowserWindow;

我收到此消息:

  

“ BrowserWindow”是指一个值,但此处被用作类型。

注意:

如果我将类型设置为任何类型,错误就会消失。

let win:any;

1 个答案:

答案 0 :(得分:1)

使用打字稿时,您必须使用打字稿模块导入语法(类似于ESModule导入),否则打字稿将不会导入类型,并且将BrowserWindow视为通过require()定义的变量

import { app, BrowserWindow, ipcMain } from 'electron'