基础篇 TypeScriptday01( 四 )


基础篇 TypeScriptday01

文章插图
第三种:对象
定义好之后绑定给变量,我们的当前这个属性就只能用规定好的数据类型了
基础篇 TypeScriptday01

文章插图
四.接口4.1 接口基本使用接口是一系列抽象方法的声明,是一些方法特征的集合
interface来定义 , 跟type很像,但是有区别的 , 后面会说
定义一个接口
基础篇 TypeScriptday01

文章插图
然后我这边要用同样是绑定给他,声明自己的数据
基础篇 TypeScriptday01

文章插图
函数的使用
参数采用解构赋值直接拿,然后通过定义好的接口去约束他们,再把函数定义为void类型,也就是没有返回值
基础篇 TypeScriptday01

文章插图
4.2 可选属性与只读属性在我们定义接口时,某些属性可以省略我们约束的时候可以不赋值叫做可选属性,用?修饰
没有修饰可选属性,不写的话会报错
基础篇 TypeScriptday01

文章插图
写为可选
基础篇 TypeScriptday01

文章插图
只读属性就是只能读取,不能修改 , readonly来修饰
没有只读属性时是可以修改的
基础篇 TypeScriptday01

文章插图
给到只读属性后
基础篇 TypeScriptday01

文章插图
我们的const和readonly的区别
因为他们两个都是不可以修改只能够读取
虽然作用大致一样 , 但是用处不一样,一般一般要作为变量使用就是用const来修饰,如果要作为属性使用就用readonly
4.3 索引签名用于描述那些通过索引得到的类型,解决参数问题
当我们定义好接口 , 如果少一个参数我们可以用可选属性来将其可要可不要
但是如果多一个参数呢?
三种方法第一种:不推荐
可以看到我如果直接加在后面会报错
基础篇 TypeScriptday01

文章插图
但是我给一个对象之后再加在后面就不会报错了
基础篇 TypeScriptday01

文章插图
这是因为ts的检测是浅检测,我们直接加在后面是一层 , 但是中间有个对象对象里面再来一个对象,就属于深层次了,就检测不到了,所以这种理论上是不允许的 , 只是我们投机取巧 , 不推荐
第二种:
通过类型断言
我们说过类型断言,就是我自己来声明,加上了之后就相当于脱离了ts的校验规则,你想定义什么就定义什么没有人管得到你了 , 注意这里是给这个变量类型断言 , 所以只能断言为people或者any
基础篇 TypeScriptday01

文章插图
第三种:
索引签名
给我们接口添加一个中括号里面props是变量名随便?。谝桓鰏tring为我们属性名的类型定义 , 要注意对象属性名会自动给你变成字符串,就算你没添加引号也是字符串,后面则是规定我们值为什么类型
基础篇 TypeScriptday01

文章插图
这样我们也可以随便添加任意类型的参数了
4.4 函数接口函数的接口需要定义一个调用的参数的签名以及返回值的类型
基础篇 TypeScriptday01

文章插图
接口与数组
注意一下我们的接口和数组怎么来使用,长得很像索引签名,但其实不是,前面定义的其实是我们数组的下标 , 所以只能为number类型,后面是数组里面每一项的值类型
基础篇 TypeScriptday01

文章插图
4.5 接口继承接口可以继承接口用到另一个接口上的属性约束 extends
单继承:
基础篇 TypeScriptday01

文章插图
多继承:
用逗号隔开
基础篇 TypeScriptday01

文章插图

推荐阅读