[Typescript] Declare Module

https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules

Example for declare node.js "url" & "path" module:

node.d.ts

declare module "url" {
  export interface Url {
    protocol?: string;
    hostname?: string;
    pathname?: string;
  }
  export function parse(
    urlStr: string,
    parseQueryString?,
    slashesDenoteHost?
  ): Url;
}
declare module "path" {
  export function normalize(p: string): string;
  export function join(...paths: any[]): string;
  export var sep: string;
}

 

Then we can add below code to the file

/// <reference path="node.d.ts"/>

Then we can import those modules and using it:

/// <reference path="node.d.ts"/>
import * as URL from "url";
// import url = require("url")
let myUrl = URL.parse("https://www.typescriptlang.org");

 

 

Shorthand ambient modules

If you don’t want to take the time to write out declarations before using a new module, you can use a shorthand declaration to get started quickly.

declarations.d.ts
declare module "hot-new-module";

 

All imports from a shorthand module will have the any type.

import x, { y } from "hot-new-module";
x(y);

 

posted @ 2022-10-25 15:01  Zhentiw  阅读(547)  评论(0编辑  收藏  举报