IDE подтверждает, что переменная существует, но Typescript выдает ошибку компилятора - PullRequest
0 голосов
/ 11 февраля 2019

Код Visual Studio обеспечивает завершение кода и не выдает предупреждение / ошибку для моего кода машинописного текста, но при компиляции его из командной строки с tsc fullscreen.ts TypeScript выдает сообщение об ошибке

мой код: fullscreen.ts

function checkFullscreen() {
    if (document.fullscreenElement !== null) {
        console.log("There is a fullscreen element");
    }
    else {
        console.log("There is no fullscreen element");
    }
}

ошибка компилятора:

fullscreen.ts:2:18 - error TS2339: Property 'fullscreenElement' does not exist on type 'Document'.

Это то, что я нашел в /usr/share/code-oss/resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts, используя код VS, перейдите к определению

interface Document extends Node, GlobalEventHandlers, ParentNode, DocumentEvent {
...
    readonly fullscreenElement: Element | null;
...
}

, гдеэллипсы представляют собой нерелевантные строки кода.Очевидно, существуют интерфейсы TypeScript для проверки моего кода, но по какой-то причине компилятор TypeScript не может их найти.

Для контекста, это HTML, с которым я пытаюсь работать

fullscreen.html

<!DOCTYPE HTML>
<html>

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
  <button id="fullscreen" onClick="checkFullscreen()">Check Fullscreen</button>
  <canvas id="canvas"></canvas>
  <script src="fullscreen.js"></script>
</body>

</html>

Это только два файла в моем каталоге - нет tsconfig, node_modules и т. Д. И на всякий случай это полезно, вот моя версия для машинописного текста

tsc --version
Version 3.3.3

etid: документация для этого API

1 Ответ

0 голосов
/ 11 февраля 2019

Изменения в TypeScript в версии 3.3 прервали полноэкранную поддержку.

Ваш VS-код, вероятно, использует более старую версию TypeScript, которая поддерживает полноэкранный API.Внизу справа от VS Code показана его версия TypeScript.

Два возможных решения:

  1. добавить свои собственные определения типов , поскольку этот ответ предполагает или
  2. понизьте версию TypeScript вашей командной строки с npm install -g typescript@3.0.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...