JavaScript缺点:
直到今天JavaScript也没有加入类型检测这一机制
我们可以给JavaScript加上很多限制,在开发中就可以很好的避免这样的问题了:
比如我们的getLength函数中str是一个必传的类型,没有调用者没有传编译期间就会报错;
比如我们要求它的必须是一个String类型,传入其他类型就直接报错;
那么就可以知道很多的错误问题在编译期间就被发现,而不是等到运行时再去发现和修改
TypeScript:解决这一问题与
Vue2.x的时候采用的就是flow来做类型检查;
Vue3.x已经全线转向TypeScript,98.3%使用TypeScript进行了重构
怎么理解上面的话呢?
我们可以将TypeScript理解成加强版的JavaScript。
JavaScript所拥有的特性,TypeScript全部都是支持的,并且它紧随ECMAScript的标准,所以ES6、ES7、ES8等新语法标准,它都是支持的;
并且在语言层面上,不仅仅增加了类型约束,而且包括一些语法的扩展,比如枚举类型(Enum)、元组类型(Tuple)等;
TypeScript在实现新特性的同时,总是保持和ES标准的同步甚至是领先;
并且TypeScript最终会被编译成JavaScript代码,所以你并不需要担心它的兼容性问题,在编译时也不需要借助于Babel这样的工具;
所以,我们可以把TypeScript理解成更加强大的JavaScript,不仅让JavaScript更加安全,而且给它带来了诸多好用的好用特性;
TypeScript的编译环境
在前面我们提到过,TypeScript最终会被编译成JavaScript来运行,所以我们需要搭建对应的环境:
我们需要在电脑上安装TypeScript,这样就可以通过TypeScript的Compiler将其编译成JavaScript;
所以,我们需要先可以先进行全局的安装:
# 安装命令
npm install typescript -g
# 查看版本
tsc --version
TypeScript的运行环境
我们每次为了查看TypeScript代码的运行效果,是否可以简化这样的步骤呢?
比如编写了TypeScript之后可以直接运行在浏览器上?
比如编写了TypeScript之后,直接通过node的命令来执行?
上面我提到的两种方式,可以通过两个解决方案来完成:
方式一:通过webpack,配置本地的TypeScript编译环境和开启一个本地服务,可以直接运行在浏览器上;
方式二:通过ts-node库,为TypeScript的运行提供执行环境;
方式一:webpack配置
方式一在之前的TypeScript文章中我已经有写过,如果需要可以自行查看对应的文章;
TypeScript(二)使用Webpack搭建环境:https://mp.weixin.qq.com/s/wnL1l-ERjTDykWM76l4Ajw;
方式二:安装ts-node
npm install ts-node -g
另外ts-node需要依赖 tslib 和 @types/node 两个包:
npm install tslib @types/node -g
现在,我们可以直接通过 ts-node 来运行TypeScript的代码
ts-node math.ts