Использование instanceof в TypeScript - PullRequest
0 голосов
/ 20 января 2019

Рассмотрим этот базовый узел + код ts:

import * as express from "express";

function doStuff(app: express.Application) {
  if (!(app instanceof express.Application)) throw new TypeError();
  // etc...
}

VSCode показывает мне эту ошибку для ...instanceof express.Application...:

[ts] Свойство 'Application' не существует для типа 'typeof e'. [2339]

Что я делаю не так?

1 Ответ

0 голосов
/ 20 января 2019

instanceof является оператором Javascript.Для его работы правый операнд должен быть значением времени выполнения (функцией или конструктором).

express.Application определяется как интерфейс.Интерфейсы существуют только во время компиляции, чтобы помочь в проверке типов.Это означает, что во время выполнения нет значения express.Application, которое будет операндом в операции instanceof, и поэтому машинопись выдает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...