如何访问模块中的 TypeScript 定义?
How to access a TypeScript definition that is within a module?
我正在尝试输入 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
我正在尝试输入 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