00:00
好呃,那接下来呢,咱们来讲一个小问题啊,叫类型注解,其实这个问题呢,比较简单,它实际上就是一种约束,专门约束函数或者变量的啊。呃,那首先呢,我们还是打开Vs code,在这里边通过代码的方式呢,来演示一下啊。找到这个目录,鼠标键新建一个文件,零一杠类型注解点TS。回车之后啊,它会在我们JS目录当中生成一个对应的JS文件,呃,为了通过代码的方式来演示这个问题啊,我需要在index.html当中把之前引入的这个JS文件的代码啊注掉,嗯。然后呢,再来一个SQ标签,点杠GS下边类型注解啊,写个注释。引入类型注解的JS文件啊。呃,在这个TS文件当中,我写个注释啊,这个叫什么呢?类型注解,然后写上这个代码啊,写习惯了啊,代码就这么写啊,啊什么叫做类型注解呢。
01:08
是一种轻量级的。啊,为函数或者变量添加的一种约束。添加的约束啊。是一种轻量级的为函数或者变量添加的约束,然后呢,在这里边我写个代码,大家来看一下啊。Function,然后来一个收MSG,括号里边写个str,冒号写个string。好特,嗯,写上一个什么呢?叫做床前明月光。逗号。加上str啊。来一个变量light msg等于啊地上啊,不是这个一式地上霜。好,搞定,再来一个conso.log括号,然后写个收MSG,括号里边写个MG。
02:07
把格式化我保存啊。保存完了之后呢,首先我们来看一下类型注解点JS文件当中已经把这个代码呢编译完了是吧,我的HTM文件当中也引入了对应的这个JS文件,此时呢,我来一个alt加B。然后呢,我们打开页面来看一下这个效果啊,内容可以正常显示对吧?好,但是呢,和我类型注解这个词它有什么关系呢?或者说和这个技术有什么关系呢?是吧?好。来,注意看啊,我把代码只要稍微的一改动就可以看到问题了。light msg等于。中括号是二十三十,好了,那此时我在这里边的MSG是个什么东西呢?它是一个数组是吧?而通过上边代码的描述可以看出来,此时的str是STRNG类型的,也就说人家函数的参数是租块类型。
03:00
那函数在调用的时候,你就应该给我传入一个字串类型的数据,结果呢,你传入的是一个数组是吧?所以说此时MSG下边就报了一个红色的线是吧?这是问题之一。第二个问题是什么呢?如果说此时我的代码报错了,那我对应的这个GS文件能否编译成功呢?是不是好,现在我把它保存一下。保存一下之后呢,我们可以看到下边在编译的时候给我们提示了错误信息,当然我们把鼠标放到这个位置,也可以看到说类型number中框的参数不能复制给类型的参数。比如说下边编译的时候是报错了,那编译的时候报错了,对应的JS文件中的代码是否能够编译成功呢?它是可以的。那为什么这个JS文件中的代码它是不报错的,因为GS是弱类型语言是吧?我这个变量是不需要通过什么类型限定的,你给我数字字符串数组都可以,所以说GS在边是没有什么问题的啊,但是要注意啊,虽然说编译成功了,但是有的时候可能会发生我们不可预期的这种效果的啊,这是要注意的问题。
04:02
好,能够编译成功啊,那这个位置该怎么办呢?是不是人家需要字符串,你就应该给人家传字符串。是吧,就好比什么呢?我想要一个女的作为我的女朋友,结果你给我送来一个男的啊,虽然说呢我也能接受,但实际上。啊,对于很多人而言,它是接受不了的,是不是啊,注意这个问题啊,所谓的类型注解其实就是一种约束啊,可以对函数进行约束,也可以对变量进行约束,再比如说大家可以看一下。我此时这个位置把MSG删掉,诶他也给我报错了,是不是我再去变异。我们来看是不是还是错误的吧,然后呢,我们来看啊,鼠标放在这说应有一个参数,但获得零个,也就是说人家这个函数里边已经限定了,说我的这个参数是一个字串类型,起码有一个参数。但是呢,我们在调用这个函数的时候,一个参数都没给他传递,所以说呢,它也会告诉我们。有问题了是吧?这是一种错误的智能提示信息。啊,智能的应该说智能的错误提示信息告诉我们你的代码是有问题的啊,这是要注意。
05:08
好,我把这个代码呢先干掉,然后回到上面来,并且呢,把MSG给它传递进来,然后保存,大家可以看到现在是正常的了啊好,刚刚呢,咱们讲的叫做类型注解。何为类型的注解,它是一种轻量级的为函数或者变量添加的约束。那为什么它可以能够给我们很快的反应出来,你的代码的语法有没有问题呢?那是因为TS本身啊,它有这种静态的代码分析的能力。它可以分析出来当前代码结构,还有提供的类型注解。啊,所以说注意啊,咱们刚刚讲的是一个类型注解的问题,所以说以后写代码的时候一定要注意是吧,你的代码结构有没有问题的,类型注解有没有问题啊好了,那我们先到这里。
我来说两句