[ts基础] 如何编写一个typescript 声明文件(xxx.d.ts)

TypeScript大势所趋,前端主流的库及互联网公司都纷纷转向TypeScript的怀抱,但是在公司内部有些公共的JS 库,并不支持类型系统,并且已经在线上运行了很长时间,在用ts从0开始在写一遍显然是不大现实的,TypeScript 身为 JavaScript 的超集,自然需要考虑到如何让 JS 库也能定义静态类型。TypeScript先后提出了几种解决方案,最终确定了DefinitelyTy...
摘要由CSDN通过智能技术生成

TypeScript大势所趋,前端主流的库及互联网公司都纷纷转向TypeScript的怀抱,但是在公司内部有些公共的JS 库,并不支持类型系统,并且已经在线上运行了很长时间,在用ts从0开始在写一遍显然是不大现实的,TypeScript 身为 JavaScript 的超集,自然需要考虑到如何让 JS 库也能定义静态类型。TypeScript先后提出了几种解决方案,最终确定了DefinitelyTyped。

前置知识

1、类型声明文件
xxx.d.ts

2、作用
我们在ts中使用非ts编写的类库,必须为这个类库编写类型声明文件,对外暴露他的API,否则无法使用

3、类库种类

  • 全局库 通过 <script> 标签引入的第三方库
  • 模块库 ES6 模块规范
  • umd库 既可以通过 <script> 标签引入,又可以通过import 导入
开启你的第一个类型声明文件

在Typescript中 ,我们编写一个类型声明文件相对来说还是很容易的
下面咱们实现一个全局库的类型声明文件

js code

// src/fristModule.js
const name = 'colin'
function sayHello() {
   
	console.log('hello world!!!');
}
function Cat() {
   
	console.log(`my name is ${
     name}`)
}
Cat.sayHello = sayHello

// src/index.ts
// 调用Cat函数 如果不写类型描述的话 vs code中会为我们提示出来,如下图所示,并且在编译的时候ts编译器会报错
Cat.sayHello();

在这里插入图片描述
类型声明文件 fristModule.d.ts

// src/fristModule.d.js
declare function Cat(): void;

declare namespace Cat {
   
  function sayHello(): void
}

html文件index.html

// index.html
<!DOCTYPE html>
<html lang="en">
<head>
    
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值