Typescript笔记
文章平均质量分 72
https://www.bilibili.com/video/BV14Z4y1u7pi
Suyuoa
这个作者很懒,什么都没留下…
展开
-
10.类型声明文件
直接用export与import导出导入就行了,首先创建d.ts与ts,文件名称均自定在index.d.ts中声明一个类型并导出在test.ts中导入并使用。原创 2023-08-01 16:22:32 · 280 阅读 · 0 评论 -
9.索引签名类型,映射类型,索引查询类型
由于在对象中键必须是字符串,所以规则中的string可以理解为定死的。由于something这里的变量名可以随便取,所以你也可以理解为定死的。也就是规则中冒号前面的东西都是定死的,你改后面的number就行了。我现在有一个对象,对象里有a,b,c三个属性,属性值依次约束为 数字,字符串,布尔。我们现在想定义一个对象,规则是键名无所谓,所有的键值必须为number。我现在要创建一个对象,需要包含x,y,z属性,且这三个属性都是number属性,这个时候我们可以这样写。再比如Readonly。原创 2023-08-01 16:17:42 · 294 阅读 · 0 评论 -
8.泛型
我现在想定义一个函数规则,函数只有一个参数,规则是给参数什么类型的值,就返回什么类型的数据。我怕们上面没有对something1进行约束,所以你可以用其他的类型,比如数字型,数字型本身也是个对象,你可以用数字型中的属性。像下面这样描述数组应该是个例,我试过改成个对象就不行了,而且你的数组中没法加内容,也无法指定数组中各元素的类型。先看不加Readonly的情况,不加Readonly所有的属性都是非只读属性,你可以对任何的属性进行修改。如果你的数组中都是字符串,它就会提示你string。原创 2023-08-01 16:08:55 · 241 阅读 · 0 评论 -
7.复合类型注解
我们再从代码的层面来看,你用交叉类型,有的时候它会自动给你兼容(不是所有的情况,比如返回值就不行)。比如我在下面的Bird与Person中都定义了fly(),fly()有相同的参数a,一个a定义的是数字,另一个a定义的是字符。和 的关系就不能是基本类型了,因为一个普通的变量不能既是数字又是字符串。联合类型表示这个变量可以是多个类型,比如 a 可以是 数字或字符串。这个时候你定义BP,BP的fly()既可以是数字也可以是字符。首先是逻辑上就有区别,继承是父子关系,交叉类型是兄弟关系。联合类型是 或 的关系。原创 2023-08-01 16:04:26 · 136 阅读 · 0 评论 -
6.使用typeof注释,只读修饰符
如果你不写类型直接写默认值,那么你在构造函数中也修改不了这个值,因为这个时候age的类型就是字面量18了,不再是number了。使用只读修饰符的属性 只能在 构造函数中修改该属性(或可以设置默认值),如果你在其他地方修改会报错。只能在实例化的时候给readonly值,在其他的地方改不了。ts中的typeof后面不能跟未定义返回值类型的函数。比如我就像传入像 p 这个变量的样子的参数。eadonly只能修饰属性不能修饰方法。如果你给的不是这个样子的就会报错。原创 2023-08-01 16:03:14 · 225 阅读 · 0 评论 -
5.类型推论,类型断言,类型兼容性
对于一般类型需要参数类型相等,对于复杂类型(比如接口)规则多的可以兼容实例少的(与单独接口兼容性的逻辑是相反的,这里你需要理解为参数个数,参数个数多的可以兼容参数个数少的)内置的函数也会给你推测一个类型,有的时候这个是你需要的,都是时候这个不是你需要的,比如 document.querySelector()HTMLAnchorElement的意思的a标签元素,如果你不进行类型断言,你用alink的href属性的时候会报错。你直接用冒号写前面是不行的,因为这个是返回值,等于是你的定义与返回值的推论有冲突了。原创 2023-08-01 16:00:50 · 260 阅读 · 0 评论 -
4.class类型
implements继承接口,你接口中有的方法,你使用implements继承的类也要有这个方法。你有两种方式对属性进行注解,第一种就是像name一样给上默认值,这样自动就认定name是字符串类型的。protected方法只能在父类与子类中使用(在实例对象中用不了)不仅父类的实例可以调用父类的方法,子类的实例也可以调用父类的方法。在实例方法中可以通过this访问到实例对象,访问前你需要先定义。private只能在定义方法中的类中用,在其子类方法中用不了。你只在构造函数中写是不行的。你还需要在外部这样写。原创 2023-08-01 15:57:08 · 72 阅读 · 0 评论 -
3.函数类型
函数本身是没有类型约束的,像箭头函数与function函数写法都不同,所以不需要特意约束函数的类型实际上是约束 参数与返回值。原创 2023-08-01 15:54:25 · 189 阅读 · 0 评论 -
2.数组,对象,元组,自定义类型,接口,字面量,枚举,any
类型别名就是相当于注解的变量,我们简单用一下我注解为a,b,c为数字或字符串使用类型别名的目的是在重复使用某一条约束的时候比较方便。原创 2023-08-01 15:49:37 · 199 阅读 · 0 评论 -
1.初识typescript
在很多地方的示例代码中使用的都是ts而不是js,为了使用那些示例,学习ts还是有必要的JS有的TS都有,JS与TS的关系很像css与lessts在运行前需要先编译为js,浏览器不能直接运行ts。原创 2023-08-01 15:44:39 · 1034 阅读 · 0 评论