Typescript总结(八)——类型的查找

x33g5p2x  于2022-02-28 转载在 TypeScript  
字(1.1k)|赞(0)|评价(0)|浏览(340)

一、命名空间
现在的Typescript支持模块化开发,支持CommonJSESmodule,具体代码如下所示。

但是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中进行声明命名空间。

相关文章

微信公众号

最新文章

更多