d.ts文件

本文档介绍了如何在test包中创建并使用d.ts文件来提供类型定义。通过创建test.d.ts,可以为test.js文件提供静态类型检查。调用示例包括引入address.d.ts文件,以增强代码的类型安全性和可维护性。

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
// ====> 打印 1


setNum(10);
// ====> 打印 10


Test.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;
}

参考链接

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值