繁体   English   中英

类型“ ProxyTargetUrl”上不存在属性“主机”错误。 即使我在JS文件中获得了IntelliSense

[英]Property 'host' does not exist on type 'ProxyTargetUrl' Error. Even though i get IntelliSense in JS File

我在.ts文件中有以下代码:

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

options的类型为httpProxy.ServerOptionstarget的类型为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属性,并且代码在运行时也运行良好。 因此键入是正确的。 我错过了什么?

问题是在您的联合类型中, type ProxyTargetUrl = string | url.Url type ProxyTargetUrl = string | url.Url ,只有Url定义了字段host

要访问此字段,您需要类型断言: (<Url>options.target).host

有关更多信息,请参见此Github问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM