模块化开发
模块化:每个文件可以是一个独立的模块,支持ES Module,也支持CommonJS
之前搭建过typescript的编译环境,我们现在直接在搭建好的编译环境下使用模块化开发。
搭建方式可以看搭建typescript编译环境
命名空间namespace
命名空间在TypeScript早期时,称之为内部模块,主要目的是将一个模块内部再进行作用域的划分,防止一些命名冲突的问题
命名空间内部的属性或者方法等,都需要export出去,不然外部都是无法使用的。一般开发不习惯的话可以选择不使用。
类型查找
我们在编写TS代码中,有时候引入第三方库不会报错,有时候又会报错,这个时候就是需要我们有类型声明(declare)
我们之前编写的typescript文件都是 .ts 文件,这些文件最终会输出 .js 文件,也是我们通常编写代码的地方; p 还有另外一种文件 .d.ts 文件,它是用来做类型的声明(declare)。 它仅仅用来做类型检测,告知typescript我们有哪些类型。
typescript会在哪里查找我们的类型声明呢?
- 内置类型声明;
- 外部定义类型声明;
- 自己定义类型声明;
1. 内置声明
内置类型声明通常在我们安装typescript的环境中会带有的;
https://githu.com/microsoft/TypeScript/tree/main/lib
2. 外部定义类型声明
外部类型声明通常是我们使用一些库(比如第三方库)时,需要的一些类型声明下面介绍两种方式声明:
- 方式一:在自己库中进行类型声明(编写.d.ts文件),比如axios
- 方式二:通过社区的一个公有库DefinitelyTyped存放类型声明文件
该库的GitHub地址:https://github.com/DefinitelyTyped/DefinitelyTyped/
该库查找声明安装方式的地址:https://www.typescriptlang.org/dt/search?search=
3. 自定义声明
在第三方库是一个纯JavaScript的话,没有对应的声明文件,就需要我们自定义声明,自定义一个.d.ts文件。比如lodash
声明模块
声明变量-函数-类
声明文件
声明命名空间