node.js - 如何访问模块中的 TypeScript 定义?

标签 node.js types module typescript

我正在尝试在 NodeJS definition 中描述的“Url”对象中键入内容.但是“Url”对象在“url”模块下进行了描述。因为它在模块下,编译器无法将其识别为有效类型。

///<reference path='../../../Definitions/node.d.ts' />
///<reference path='../../../Definitions/node-webkit.d.ts' />
///<reference path='../../../Definitions/cheerio.d.ts' />

var NodeUrl = require('url');

function findLinks($cheerio:Cheerio, internalOnly?:boolean, rootUrl?:url.Url):string[] {
    //url.Url is not recognised, neither is Url or NodeUrl.Url
}

定义文件定义了以下模块(连同 NodeJS 的其余部分):

declare module "url" {
    export interface Url {
        href: string;
        protocol: string;
        auth: string;
        hostname: string;
        port: string;
        host: string;
        pathname: string;
        search: string;
        query: any; // string | Object
        slashes: boolean;
        hash?: string;
        path?: string;
    }

    export interface UrlOptions {
        protocol?: string;
        auth?: string;
        hostname?: string;
        port?: string;
        host?: string;
        pathname?: string;
        search?: string;
        query?: any;
        hash?: string;
        path?: string;
    }

    export function parse(urlStr: string, parseQueryString?: boolean , slashesDenoteHost?: boolean ): Url;
    export function format(url: UrlOptions): string;
    export function resolve(from: string, to: string): string;
}

如何正确引用 Url 类型?

感谢您的帮助。

最佳答案

在 Typescript 中,您需要使用稍微不同的语法来导入模块:

import NodeURL = require('url');

您现在可以访问

NodeURL.Url

关于node.js - 如何访问模块中的 TypeScript 定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28172976/

相关文章:

c# - 将 C# 数据类型参数传递给用 C++ 编写的 dll?

javascript - 学习在 Javascript 中使用命名空间和模块

node.js - Heroku 应用程序在一段时间后停止工作,需要重新打开

node.js - 如何在不指定其祖先的情况下获取实体?

node.js - Lambda 层 node_modules

c# - Main 是一个 'type' 但像 'variable' 一样使用

node.js - Jasmine 和 Protractor 没有输出文件

list - 在 Elixir 中使用类型规范中的原子列表

module - 供配置者使用的 Terraform 模块

wpf - PRISM + MEF + MVVM——不确定从哪里开始?