TypeScript | 青训营笔记

104 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第8天

简介

  • TypeScript于2012年10月微软发布,Angular/React/Vue框架都支持

JavaScript vs TypeScript

  • JavaScript是动态类型,在程序执行时才进行类型校验(编译发生在执行时);ts正好相反是静态类型,因此他能在编译阶段查看到大部分错误(执行时错误大大减少),同时自动生成文档TSDoc,兼容Js特性

  • 弱类型语言:隐式类型转换

  • 基础类型定义(右侧)

image.png

  • 对象类型(首字母大写)

image.png

  • 函数类型

image.png

:number 和 number (返回值类型)

  • 函数重载(给不同参数可能性)

image.png

或者

image.png

  • 字符串和数字

与js大体相同但是可指定多个值

image.png

高级类型

image.png

  • 当你编写一个类名感觉繁琐和重复较多时就可以使用联合、交叉类型

image.png

联合类型: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 文件。