这是我参与「第四届青训营 」笔记创作活动的第8天
简介
- TypeScript于2012年10月微软发布,Angular/React/Vue框架都支持
JavaScript vs TypeScript
-
JavaScript是动态类型,在程序执行时才进行类型校验(编译发生在执行时);ts正好相反是静态类型,因此他能在编译阶段查看到大部分错误(执行时错误大大减少),同时自动生成文档TSDoc,兼容Js特性
-
弱类型语言:隐式类型转换
-
基础类型定义(右侧)
- 对象类型(首字母大写)
- 函数类型
:number 和 number (返回值类型)
- 函数重载(给不同参数可能性)
或者
- 字符串和数字
与js大体相同但是可指定多个值
高级类型
- 当你编写一个类名感觉繁琐和重复较多时就可以使用联合、交叉类型
联合类型:A | B 联类型表示一个值可以是几种类型之一
交叉类型: A & B,多种类型叠加到一起成为一种类型,包含所需所有类型的特性
这样程序变得更有条理,读起来也更加明了
TypeScript工程应用
1. webpack
(1) 配置webpack loader 相关配置
(2) 配置tsconfig.js文件
(3) 运行webpack启动/打包
(4) loader处理ts文件时,会进行编译与类型检查
相关loader:
使用TSC编译
(1) 安装Node与npm (2) 配置tsconfig.js (3) 使用npm 安装tsc
npm install -g typescript
(4) 使用tsc运行编译得到js文件
让我们创建一个空文件夹,然后写下我们第一个 TypeScript 程序: hello.ts:
// Greets the world.
console.log("Hello world!");
注意这里并没有什么多余的修饰,这个 hello world 项目就跟你用 JavaScript 写是一样的。现在你可以运行 tsc 命令,执行类型检查:
tsc hello.ts
现在我们已经运行了 tsc,但是你会发现什么也没有发生。确实如此,因为这里并没有什么类型错误,所以命令行里也不会有任何输出。
但如果我们再次检查一次,我们就会发现,我们得到了一个新的文件。查看一下当前目录,我们会发现 hello.ts 同级目录下还有一个 hello.js,这就是 hello.ts 文件编译输出的文件, tsc 会把 ts 文件编译成一个纯 JavaScript 文件。