关于TypeScript
TypeScript 是 JavaScript 的一个超集,主要提供了类型系统和对 ES6 的支持,它由 Microsoft 开发,代码开源于 GitHub 上。
它的第一个版本发布于 2012 年 10 月,经历了多次更新后,现在已成为前端社区中不可忽视的力量,不仅在 Microsoft 内部得到广泛运用,而且 Google 的 Angular2 也使用了 TypeScript 作为开发语言。
前言
学习TypeScript需要前置学习JavaScript,了解Node.js,并会使用npm安装及使用一些工具
推荐阅读:
TypeScript学习曲线较其他编程语言来说较为平滑,引用TypeScript设计者 Anders Hejlsberg 的话:“如果你懂得 JavaScript,那么你就已经懂得 TypeScript 了。”
JavaScirpt是标准,但是TypeScript不是。现在的TypeScript紧随ECMAScript的定义,几乎实现了Stage 3所有提案,也就是说你使用JavaScirpt也就是使用最新的JavaScript。
安装TypeScript
1 | npm install -g typescript |
以上命令可以在全局环境安装TypeScript,安装完成之后我们可以在所有地方使用tsc
命令来编译.ts
文件成.js
文件。
基础数据类型
JavaScript数据类型分为两种:原始数据类型和对象数据类型
原始数据类型分为五种:
布尔值
数值
字符串
null
Undefined
ES6中的新类型Symbol
布尔值
在TypeScript中定义boolean
值:
1 | let falg: boolean = false; |
注意:Boolean()
构造函数返回的不是布尔值而是Boolean
对象
1 | let createByNewBoolean: boolean = new Boolean(1) |
事实上new Boolean()
构造函数是可以返回布尔值的:
1 | let createByBoolean: boolean = Boolean(1) |
数值
TypeScript使用number
定义数值类型:
1 | let decLiteral: number = 1; |
字符串
TypeScript使用string
定义字符串类型
1 | let myName: string = 'Oven'; |
其中TypeScript有一个模板字符串语法
1 | le t sentence: string = `Hello ${name}` |
这个语句编译成js后:
1 | var sentence = "Hello " + name; |
其中`用来定义ES6 中的模板字符串,${expr}
用来在模板字符串中嵌套表达式
空值
在JavaScript中没有空值的概念,但在TypeScript中可以使用void
表示没有返回值的函数:
1 | function alterName(): void { |
声明一个 void
类型的变量没有什么用,因为你只能将它赋值为 undefined
和 null
:
1 | let unusable: void = undefined; |
Null 和 Undefined
在 TypeScript 中,可以使用 null
和 undefined
来定义这两个原始数据类型:
1 | let u: undefined = undefined; |
与 void
的区别是,undefined
和 null
是所有类型的子类型。也就是说 undefined
类型的变量,可以赋值给 number
类型的变量:
1 | // 这样不会报错 |
1 | // 这样也不会报错 |
而 void
类型的变量不能赋值给 number
类型的变量:
1 | let u: void; |