目录
JavaScript类型 – null和undefined类型
一、认识TypeScript
编程开发中我们有一个共识:错误出现的越早越好,能在写代码的时候发现错误,就不要在代码编译时再发现(IDE的优势就是在代码编写过程中帮助我们发现错误。能在代码编译期间发现错误,就不要在代码运行期间再发现(类型检测就可以很好的帮助我们做到这一点)。能在开发阶段发现错误,就不要在测试期间发现错误,能在测试期间发现错误,就不要在上线后发现错误。 为了弥补JavaScript类型约束上的缺陷,增加类型约束,很多公司推出了自己的方案:2014年Facebook推出了flow来对JavaScript进行类型检查;同年,Microsoft微软也推出了TypeScript1.0版本;
我们可以将TypeScript理解成加强版的JavaScript。JavaScript所拥有的特性,TypeScript全部都是支持的,并且它紧随ECMAScript的标准,所以ES6、ES7、ES8等新语法标准,它都是支持的;并且在语言层面上,不仅仅增加了类型约束,而且包括一些语法的扩展,比如枚举类型(Enum)、元组类型(Tuple)等;TypeScript在实现新特性的同时,总是保持和ES标准的同步甚至是领先;并且TypeScript最终会被编译成JavaScript代码,所以你并不需要担心它的兼容性问题,在编译时也不需要借助于Babel这样的工具;所以,我们可以把TypeScript理解成更加强大的JavaScript,不仅让JavaScript更加安全,而且给它带来了诸多好用的好用特性。
二、搭建环境
1. TypeScript的编译环境
TypeScript最终会被编译成JavaScript来运行,所以我们需要搭建对应的环境:
需要在电脑上安装TypeScript,这样就可以通过TypeScript的Compiler将其编译成JavaScript;
所以,我们需要先可以先进行全局的安装:
安装命令
npm install typescript -g
# 查看版本
tsc --version
2. TypeScript的运行环境
如果我们每次为了查看TypeScript代码的运行效果,都通过经过两个步骤的话就太繁琐了:
- 第一步:通过tsc编译TypeScript到JavaScript代码;
- 第二步:在浏览器或者Node环境下运行JavaScript代码;
可以通过两个解决方案来完成:
- 方式一:通过 webpack,配置本地的TypeScript编译环境和开启一个本地服务,可以直接运行在浏览器上,推荐阅读;
- 方式二:通过 ts-node库,为TypeScript的运行提供执行环境;
- 安装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
三、变量的声明
我们已经强调过很多次,在TypeScript中定义变量需要指定 标识符 的类型。
所以完整的声明格式如下:
- 声明了类型后TypeScript就会进行类型检测,声明的类型可以称之为类型注解;
var/let/const 标识符: 数据类型 = 赋值;
比如我们声明一个message,完整的写法如下:
- 注意:这里的string是小写的,和String是有区别的;string是TypeScript中定义的字符串类型,String是ECMAScript中定义的一个类。
如果我们给message赋值其他类型的值,那么就会报错
声明变量的关键字
在TypeScript定义变量(标识符)和ES6之后一致,可以使用var、let、const来定义。
var name: string = "why"
let age: number = 18
const height: number = 1.88
在TypeScript中并不建议再使用var关键字了,主要原因和ES6升级后let和var的区别是一样的,var是没有块级作用域的,会引起很多的问题。
JavaScript和TypeScript的数据类型
TypeScript是JavaScript的一个超级