ts实战系列十一:声明文件

. JS文件 + .d.ts文件  ===  ts文件

②. 说明:
    a. 一般的ts文件中有逻辑代码部分和interface说明书部分.
    b..d.ts是类似一个纯粹的说明书文件,没有逻辑代码.
    c. .d.ts文件可以让JS文件继续维持自己JS文件的身份,而拥有TS的类型保护.. 一般写业务代码不会用到,但是点击类型跳转一般会跳转到.d.ts文件.

(1). 新建一个jquery.d.ts

declare var jquery: (selector: string) => any

npm install --save @types/jquery

qs库由jsx改为tsx方案

(1). 安装qs库:

yarn add qs -D

(2). 引入到.ts文件报错:

import * as qs from 'qs'

Could not find a declaration file for module 'qs'.
Try `npm i --save-dev @types/qs` if it exists or add a new declaration (.d.ts) file containing `declare module 'qs';`

说明:. declaration file指的是ts的类型的声明文件:
    a. 查看node_modules下面qs源码全是.js的后缀.
    b. js文件是没有类型定义的,哪怕是语法写错了,也不会报错,因为js文件没有类型定义(说明书).
    c. 在ts的文件中也想引入带有ts的包

(3). 安装说明书:

yarn add @types/qs -D. 这个是qs的ts定义文件:
    a. 只有在开发中使用.
    b. 安装完后,找到node_modes/@types/qs/index.d.ts就是对qs的js文件做了类型定义,把js代码转化为ts.
    c. 是一个纯粹的说明书文件.
    d. 作用可以理解为给js打一个ts的补丁.
    e. 在业务开发中,基本上这个文件是没有作用的.. d.ts可以理解为给js打补丁用的.. 为什么不直接改上面那个库的js文件改成ts文件呢,或者加入类型定义呢?
    a. 因为现在大多数还是使用js代码,ts的应用规模肯定比js少.
    b. 库的作者希望是有更多的下载使用量,如果使用了ts,就提高了门槛.
    c. 一般开源作者是源代码用js来写,再加一个ts的补丁(: @types/qs). 作者可能不同:
    a. 比如,在开源社区写了一个js插件,很好用,有一些开发者需要使用ts.
    b. 此时,可能有一些热心群众写一个d.ts文件,可能原作者与ts作者不是同一个人.
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值