@ts-check 给js点类型看看!
js的动态类型一直是让人头疼的问题,特别是项目大了之后,难受的类型方面的错误会加大debug的强度,很难被发现。另一方面就是关于性能的方面,js的解释器在进行解释的时候会不断的将你的代码的类型进行推断,比如:
let x = 1
x = 'a'
这样是在js里是没有任何问题的,但是解释器解释的时候,看到let x = 1
,心想,那x肯定就是number类型了,下面赋值字符a
,不对,那应该是string类型了,然后又重新开辟一块内存放入a,这样做是很不好的。嗯,自然有解决方法,比如,微软家的Typescript。ts实在是解决js动态类型的好手,ts是一门静态语言,是js的超集。学习曲线也很平缓。但是如果我们现在已经有了一个项目,项目已经很大了, 意识到js的动态类型带来许多类型上的错误,实在使得开发过程,debug过程都很不愉快,于是想着用ts来重构,这将是一件极为痛苦的事情,要把那么多的代码按照ts的标准重构,不仅花费大量的时间,甚至还需要大量的精力。
有没有一种不改变现有的代码结构的方法,来使得我们避开动态类型的坑呢?答案是能行的,不妨试试@