Как исправить ошибку win относится к значению, но используется здесь как тип - PullRequest
0 голосов
/ 09 июня 2019

Я следую примеру здесь и у меня есть такой код 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 Ответ

1 голос
/ 09 июня 2019

При использовании машинописного текста необходимо использовать синтаксис импорта модуля машинописного текста (аналогично импорту ESModule), иначе машинописный текст не будет импортировать типы и видеть BrowserWindow как переменную, определенную с помощью require()

import { app, BrowserWindow, ipcMain } from 'electron'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...