Vue3—17—TypeScript之类、接口、枚举、泛型、类型声明等

 


 

一、类

 

 

 

 

 

 

 

 

只读属性可以在构造器里赋值,但是赋值之后就不可以修改了;

 

可以使用访问器来访问私有private的属性;这个比java语言要自己写setNmae()和getName()方法要方便一些,但是都差不多;

 

 

二、接口

接口和type都可以实现对象类型的定义,

但是interface可以对同一个名字重复定义并且将同一名字的属性合并,type由于只是个别名所以不可以重复。

推荐使用interface定义对象;

 

 

字面量赋值:

ts说白了就是帮助我们进行数据类型检测的,有些时候它的类型检测可能并不智能,这个时候可以使用这种方式跳过它的类型检测;

 

 

 

 

 

三、枚举

枚举首先也是一种数据类型, 有点类似字面量类型+联合类型的综合体;

就是我们自定义一些 名称常量等;

但是枚举的可读性非常强,我们可以使用枚举名.属性名;

 

使用type来定义一个数据类型;

使用enum来定义一个常量集合;

 

 

枚举默认按照顺寻有0,1,2,3等值;

 

 

 

 

 

 

四、泛型

4.1什么是泛型?

实际上就是类型的参数化,将我们的类型在定义的时候不要写死,具体是什么类型由调用者传入的参数来决定;

但是又不要用any来定义,如果是any那么以后返回的类型也是any了,但是使用泛型,以后返回的类型就是调用者所传入的;

 

 

4.2 类型变量type,将不确定类型使用type这个参数替代

 

 

 

 

 4.3 多个类型,多个参数替代

 

 

 4.4   接口和类的泛型

除了函数可以使用泛型之外,接口和类在定义的时候,也可以使用泛型;

 

 

 

 

 

 

 4.5泛型约束

通过让泛型继承一个接口,而使得这个泛型有了一定的约束,有了传入过来的参数必须要有的属性,变得没那么广泛了;

 

 

 

 

 

 

 

 

 

 

五、ts的模块化

js有模块化开发,ts也肯定有,并且除了js的esModule方式,还支持CommonJs方式;

 

 

5.2类型查找

 

 

 

5.3类型申明

ts使用第三方库、使用文件(图片文件等)一定要在.d.ts文件里有类型申明;

  • 内置声明:ts帮助我们申明好了;
  • 外部定义申明:我们引入的第三方库会有自己申明好的;或者下载别人神明好的文件;
  • 自定义申明: 自己申明,记住,只是申明有这个东西即可,不需要在.d.ts里实现,具体实现应该在其他文件;

如果申明了,才可使用import等方式导入吧;

 

 

 

 

 

 5.4如何申明?

 

 

 

 

 

 

 

 

 

 

 

 

 

   

posted @ 2021-09-29 17:50  Eric-Shen  阅读(4046)  评论(0编辑  收藏  举报