Свойство 'host' не существует для типа 'ProxyTargetUrl' Ошибка. Даже если я получаю IntelliSense в файле JS - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть следующий код в файле .ts:

const connection = {
        host: options.target.host
      };

options относятся к типу httpProxy.ServerOptions, а target относятся к типу ProxyTargetUrl

Я получаю следующую ошибку:

Property 'host' does not exist on type 'ProxyTargetUrl'.
  Property 'host' does not exist on type 'string'.

Эти опции являются частью модуля http-proxy npm. Установлены новейшие наборы. "@types/http-proxy": "^1.16.2"

Когда я следую декларации, я вижу это:

type ProxyTargetUrl = string | url.Url;

-

interface Url extends UrlObjectCommon {
        port?: string;
        query?: string | null | ParsedUrlQuery;
    }

-

interface UrlObjectCommon {
        auth?: string;
        hash?: string;
        host?: string;
        hostname?: string;
        href?: string;
        path?: string;
        pathname?: string;
        protocol?: string;
        search?: string;
        slashes?: boolean;
    }

Почему я получаю эту ошибку? Когда я копирую свой код в файл JS, я получаю IntelliSense для свойства host, и код также прекрасно работает во время выполнения. Так что печатать правильно. Что я пропустил?

1 Ответ

0 голосов
/ 08 ноября 2018

Проблема в том, что в вашем типе объединения type ProxyTargetUrl = string | url.Url только для Url определено поле host.

Для доступа к этому полю вам потребуется утверждение типа: (<Url>options.target).host.

См. этот выпуск Github для получения дополнительной информации.

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