test文件夹(包)下建立2个文件
test.d.ts
test.js
test.d.ts内容
declare function Test(one:any, two:any):void;declare namespace Test {function setNum(num: number):void;
}
export = Test;
test.js内容
'use strict';module.exports = Test;function Test(a, b) {console.log(a, b);console.log('1')
}Test.setNum = function (num) {console.log(num)
}
调用:
import Test, {setNum} from "test";Test('a', 'b');
// ====> 打印 a b
// ====> 打印 1setNum(10);
// ====> 打印 10Test.setNum(1321321321);
// ====> 打印 1321321321
例如:
address.d.ts
// 让你的代码支持CommonJs和AMD规范
export = address;// 定义了 Address接口
declare interface Address {ip: string;ipv6: string;mac: string;
}// 定义了3种回调类型
declare type AddressCallback = (err: Error, addr: Address) => void;
declare type MacCallback = (err: Error, addr: string) => void;
declare type DnsCallback = (err: Error, servers: string[]) => void;// 定义全局函数 address
declare function address(interfaceName: string, callback: AddressCallback): void;
// 函数重载 address
declare function address(callback: AddressCallback): void;// 定义全局对象 address
declare namespace address {const MAC_IP_RE: RegExp;const MAC_RE: RegExp;function dns(filepath: string, callback: DnsCallback): void;function dns(callback: DnsCallback): void;function ip(interfaceName?: string): any;function ipv6(interfaceName?: string): any;function mac(interfaceName: string, callback: MacCallback): void;function mac(callback: MacCallback): void;
}
参考链接