typescript对类型的管理和查找规则

1 .d.ts文件

它是用来做类型的声明(declare)。 它仅仅用来做类型检测,告知typescript我们有哪
些类型

2.typescript的类型声明查找规则?

  • 内置类型声明;
  • 外部定义类型声明;
  • 自己定义类型声明;

2.1 内置类型声明

  • 内置类型声明通常在我们安装typescript的环境中会带有的
  • 内置类型声明是typescript自带的、帮助我们内置了JavaScript运行时的一些标准化API的声明文件; 包括比如Math、Date等内置类型,也包括DOM API,比如Window、Document等;
https://github.com/microsoft/TypeScript/tree/main/lib

2.2 外部定义类型声明

  • 外部类型声明通常是我们使用一些库(比如第三方库)时,有些库中自带.d.ts类型声明文件文件,这就是外部声明的类型声明文件。
  • 有些库没有,需要我们手动添加,手动添加的就是内部声明文件。

2.3 自己定义类型声明

什么情况下需要自己来定义声明文件呢?
  • 情况一:我们使用的第三方库是一个纯的JavaScript库,没有对应的声明文件;比如lodash
  • 我们给自己的代码中声明一些类型,方便在其他地方直接进行使用
  这些库通常有两种类型声明方式:
  • 方式一:在自己库中进行类型声明(编写.d.ts文件),比如axios
  • 方式二:通过社区的一个公有库DefinitelyTyped存放类型声明文件
该库的GitHub地址: https://github.com/DefinitelyTyped/DefinitelyTyped/
该库查找声明安装方式的地址: https://www.typescriptlang.org/dt/search?search=
比如我们安装react的类型声明: npm i @types/react --save-dev

3.怎么进行类型声明

使用declare关键字

3.1 声明变量,函数和类类型

和声明一个变量类型,只是不给出具体的值,但是要指定类型

declare let name: string
declare let age: number

declare function(name: string, age: number) :viod

declare class Person {
  name: string
  age: number
  constructor(name: string, age: number)
}

3.2声明模块

declare module '模块名' {}。
在声明模块的内部,我们可以通过 export 导出对应库的类、函数等;

 

declare module lodash {
    export function(p: any[]){}: any
}

3.3 声明文件

当我们在ts中引入图片或者.vue文件时,ts不能识别这种类型,因此可以对这些文件进行类型声明

declare module '*.jpg'
declare module '*.vue'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值