00:00
好,接下来我们再来看几个TS的一个编译的选项,那么我们要看的第一个呢,叫做lo,哎,Lo JS allow呢叫做允许,GS呢就叫做就是GS javascript,那GS是干嘛的?我们先来看我们的代码,现在我在我的src目录下有两个文件,一个叫点TS,还有一个叫m.tS现在呢,我在它里面呀,我加上一个新的文件,诶,但是这时候呢,我不加TS了,我加一个GS文件,随便一个,我叫一个hello.gs里边代码呢,我也是随便写cancel.log我们直接写一个hello,好,那这样我们就写完了,那这时候的话,我们还是执行我们的这个TC来对我们这个文件进行一个编译啊,直接执行,诶,那我们知道tsc啊,这少写了一个逗号啊,把这个逗号写上,然后我们重新编译一下,我们知道TSIC编译的目录的话,我们已经指定好了,就是谁呢?就是我们这个英录的下边的,就是我们这个英录的这个。
01:01
属性来指定的,指定的是谁呢?就是根目录下的src下的任意目录里的任意文件,那也就是说按道理来讲,只要是在SC下的文件,是不是都应该被编译到DST目录下呀,哎,但是你当我打开以后,你会发现B编过去了点TS也编过去了,但是hello.ts有没有编过去啊,没有编过去,所以这个时候我们说的GS是干嘛的?GS就是是否对我们这个GS文件进行编译啊,进行编译默认是false,也就是不编译,也就是你写那个GS文件,它会还是在我们,就是它不会处理啊,不会做任何处理,那我如果想编译GS怎么办啊,我这个模块是用GS写的,我想编译怎么办?哎,我可以把它改成一个,哎,True,哎,是不是编译GS呀,是,那这个时候我再执行tsc的时候,我们看效果。
02:00
那这里边的话,你再看,你看哈点GS是不是也就整过去了,哎,整过去就是看你有的时候,因为有的时候我们需要使用的一些模块,可能是用这个呃,GS写的,那如果GS不编译过去的话,我们用起来是它是不正常的,所以这个时候我们就可以用这个GS,把这个GS也编译过去,好,那再来看还有一个东西叫什么呢?还有一个东西跟它其实属于是一号的,还有一个叫做check GS check check叫什么呀?叫检查,检查什么意思呢?就是是否检查我们这个GS代码的语法。哎,检查哎,我们这个JS代码,呃,是否符合我们这个语法的一个规范啊check JS是检查我们G代码的,那这个时候我们来看啊,现在啊,它的默认值也是默认值是。哎,默认是false,所以这里边我们来写一个东西,我直接写一个light light,一个HH等于一个十,然后来一个HH等于一个哈,那本身的话,第一次我们初始化的时候,给我们这个变量赋值的类型是一个number,当我第二次对它再进行赋值的时候,我给了他一个字符串,那这个如果是TS语法的话,它应该是报错了,但是你后发现当我写到GS里的时候。
03:22
他是不是没有任何反应啊,没有任何反应,为什么?就是因为我们现在TS他没有去检查这个GS语法,所以在这儿的话就是你还是该怎么写就怎么写,那这里边的话,我只需要把它改成true true以后的话,他也会检查这个GS欲望,那这个时候他就会发现这是不是就有一个错误呀,哎,他希望的是一个number类型,结果你给了一个string,这就报错了啊,所以这俩基本上可以认为是一套的啊,一套的就是,诶要么都用,要么就都不用了,是吧,你要allow GS了,那你就可以去检查一下,当然这也不是绝对的啊,不是绝对的,因为有的时候我们可能引入的一些模块,它就是不符合这个语法,那可能我们这个检查也要暂时给他先,哎,先给它关一下。
04:05
那么下边一个的话,我们叫做这么一个东西,叫做remove comment comments comments叫什么叫注释,叫是否移除注释,也是默认值是force,这就好理解了,找到app.ts你看app.ts我这边是不是正好这有注释啊,哎,有注释,有注释,我们来看hello.g.GS这个是我们编译后的文件啊,这个是我们编译前的,这是编译后的,你会发现我们TS文件里的注释,它是不是被原封不动的拿到了我们的这个GS文件里啊,啊,原封不动拿过来了,也就是说注释会被编译过去,那有的时候我们不希望注释编译过去,我们可以把这个remove comments设置为true,就是哎,我不要注释了,不要注释了,我们重新再编一次,看效果。再看GS文件里面,你看啊,这个注释稍微等一下你刷过来了,这注释是不是就消失了,哎,就是编译的时候不会再去对这个注释进行这个,哎编译了叫做一个remove commentmence啊commence,然后下边还有几个,我们快速说一下,还有一个我们叫什么呢?哎,叫做一个这个no amit noit什么意思呢?我们写一个true,然后啊,把这三个代码我都给它删了。
05:24
那艾米其实就是不生成我们这个编译后的文件。哎,叫做不。呃,生成我们这个编译后的一个文件,默认值也是false,当我设置为true,就是刚才我们看的都是默认情况,那现在我看啊,我把它设置为true以后,它会是什么效果,直接执行。设置为true以后,我们再看,你看这个DT里的目录里面是不是什么都没有了,哎,为什么什么都没有了,因为弄艾米的就这么一个效果就是哎,就是你编译完了,它会执行编译这个过程,但是它实际上就是不执行最后那个步骤,不去生成那个诶编译后所产生的那个诶那个GS文件,那你说这有什么用啊,诶这其实用处也很简单,就是有的时候我们不想用这个GTS的编译功能,可能我只想用这个TS去检查一下我这个语法,那这个时候我就可以用一下no艾米的,但是整体来说其实用的几率没有那么的高啊,没有那么高,我先给它掉啊,或者这样我先给它改成这个force。
06:32
然后下边一个跟它有点像的叫做noit on error,那这个的话它也是不生成编译文件,但是它是有一个前提的,就是什么意思呢?就是当有错误的时候,它就不生成编译文件,诶这表什么意思呢?诶当有错误时。哎,不生成我们这个,哎编译的编译后的文件,那我可以把它设置为true啊,也是默认值是false,那这个时候就回到我们之前说那话题,之前我们说了你这个TS认况查的时候并不是很格,像这种情况,我这写了一个,这写了一个呃字符串,你如果对它进行编译的话,编译的时候会报错,但是那个GS文件它会正常的去给你编译出来,会编译出来,那有的时候我说这就不好了,都已经有错了,你还给我编译出来,那这这这编译还有什么用呢?所以如果你有这种困惑的话,你就可以把这个选项打开,这个选项开开以后就是你的代码当中有任何的错误,诶干脆它都不给你编译了,TS执行。
07:38
这个时候你看这时候给你报错了,哎,是不是A给它赋值了一个什么呀?哎,String给赋值给了number报错了,那这个时候你再看啊,你看Dis目录里边是不是就就没有东西了,诶就是有错误的时候,它就不会编译,避免这些有安全隐患的代码存到我们这个Dis目录里边,那我把这个错误改了啊,我把这个注了没有这个错了,没有这个错我再编译,这个时候他就跟我们。
08:04
其他情况一样,那它就是正常编译了啊,正常编译了,所以的话,等于是我们这个no iit on error,其实就是把我们这个编译变得更加严格了,避免这个产生这个诶错误的代码啊,然后在这个是我们说的这几个这个常规的属性,常规的属性,然后再往下说的话,就该说我们的这个呃,TS里边一些语法检查相关的一些属性了,那这里边我们先把这个东西停一下,后边我们单独再来一节课,再说那些语法检查的一些属性,还是先停一下。
我来说两句