TS定义类型声明
初始化一个ts项目
全局安装typescript, tsc 是typescript的脚手架工具, 安装了typescript 就会携带 tsc,
初始化ts配置文件 tsconfig.json
1 | |
自定义类型来源
namespace 命名空间
命名空间会在全局上挂载一个对象
如:
1 | |
module 定义类型模块
在类似@types/node 这类很多的@types/xxnpm类型包中的类型声明,使用module模式来全局定义的。
@types 包是由 DefinitelyTyped 项目统一管理的
创建文件与 module 同名的文件:
1 | |
全局变量和函数
通过 declare 声明变量和函数
1 | |
描述函数重载
申明语句中只能定义类型,不要在声明语句中定义具体的实现
1 | |
声明class
1 | |
类型的作用域
默认 编写声明文件 xx.d.ts, dts中的类型声明默认是全局的;
如果模块内部有import export 则需要通过import type单独进行类型引用
1 | |
如果一个全局的dts中依赖了外部的类型,这个时候会去import 外部的类型声明,但是这时候就会将全局的dts变成本地化,即不能全局使用声明的变量
1 | |
这个时候 可以通过 编辑器指令reference引入类型声明
1 | |
总结
声明类型的三种方式
namespace: 声明一个全局对象,属性即为声明的类型module: 跟namespace没有区别es modulees 标准的模块语法, 额外拓展了import type
.d.tsdts文件的类型声明默认是全局的,如果其中有importexport将会变成局部的全局的类型声明来源:
.d.ts、@types以及 ts的内置声明lib包括 dom 和 es
TS定义类型声明
https://avatar0813.github.io/2023/05/14/typescript/TS定义类型声明/