一、命名空间
现在的Typescript
支持模块化开发,支持CommonJS
和ESmodule
,具体代码如下所示。
但是Typescript
是在2014
年被开发出来,那时候es6还没有esmodule
,此时在ts
中存在命名空间namespaces
。
二、类型的查找
如上图所示,此时我们存在一个问题?就是我们都没有定义HTMLImageElement
类型,那么这个类型是如何来的。
为什么如上述代码这样写,就会报无法发现的错误呢?
此时就需要介绍一种文件类型.d.ts
,该文件就表示定义类型的文件。
上图就是我们在typescript
中存在的一些定义类型的文件。
上图就是在typescript
中查找到已经声明的HTMLImageElement
类。那么typescript会在哪里查找我们的类型声明呢
1、内置类型声明
2、外部定义声明
3、自己定义声明
三、内置类型声明
内置类型声明就是Typescript
自带的类型声明,比如上述的HTMLImageElement
,包括window
,Date
等等。
四、外部定义类型声明
外部定义类型声明主要分为两种,一种是在自己的库中存在.d.ts
声明文件,此时可以在ts
文件中对其声明的类型进行使用。如下所示,为axios第三方库加载
。
可以正常使用axios
进行服务器请求。loadsh文件
上面代码为我们下载了loadsh
文件,但是无法进行引入。
因为loadsh
第三方库中全部都是js
文件,并没有.d.ts
声明文件。解决办法:
我们可以在https://www.typescriptlang.org/dt/search?search=
网站中搜索需要引入的声明文件,然后安装即可。
此时就不会报错。解决方法二:
我们可以自己声明,新建一个.d.ts
文件表示声明文件,然后再按照如图二所示进行声明,最后就可以使用了。declare声明变量函数
如上图所示,我们在打包后插入脚本的位置的前面定义了一些变量,函数,此时我们想要在开发时时候,此时就会报错。解决方法就是自己在声明文件中对变量和函数进行声明。
我们可以理解为,进行声明后的变量可以骗过Typescript
编译器。declare声明模块
在前面我们对lodash
文件进行声明时,就使用的是模块的声明。
declare声明文件模块
declare声明命名空间
我们在index.html
中引入jquery
文件:https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js
然后在.d.ts
中进行声明命名空间。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47450807/article/details/123182302
内容来源于网络,如有侵权,请联系作者删除!