其实TypeScript 是 JavaScript 的超集。并且类型系统是可选的,如果省略掉,那么就是 JavaScript。
ts的优势
TypeScript是微软开发的一个开源的编程语言。可以通过Babel转译为JavaScript代码,这样就能运行在任何浏览器,任何操作系统。
- TypeScript 增加了代码的可读性和可维护性。
- 类型系统实际上是最好的文档,通过类型的定义就知道变量的内容格式。
- 编译阶段会检查错误,减少运行报错。
- 增强了代码补全,接口提示,跳转到定义,重构等。
- TypeScript 兼容性好
- Typescript是带类型的javascript的超集,完全兼容js语法。
- 不显示的定义类型,也能够自动做出类型推导。
- 兼容第三方库,即使第三方库不是用 TypeScript 写的,也可以编写单独的类型文件供 TypeScript 读取。
类型系统
既然TypeScript是带类型的js,那么学习ts的核心,就是掌握类型系统。
- 原始类型:
string
、number
、boolean
。
let num: number;
let str: string;
let bool: boolean;
- 数组。
letstrArray: string[];
- 接口:interface是 TypeScript 的一个核心知识,它能在一个类型声明中合并众多类型声明。
interface Persion {
name: string;
age: number;
}
- 内联类型:它与上面的接口不同,可以使用内联注解语法注解任何内容。
let Persion: {
name: string;
age: number;
}
-
特殊类型。
any
、null
、undefined
以及void
。- any:类型在 TypeScript 类型系统中占有特殊的地位。它提供给你一个类型系统的「后门」,TypeScript 将会把类型检查关闭。
- null 和 undefined: null 和 undefined 和
any
类型的变量一样,都能被赋值给任意类型的变量。 - void:
:void
用来表示没有一个返回值的函数。
-
泛型:根据输入确定输出。
function loggingIdentity<T>(arg: T): T {
console.log(arg.length); // Error: T doesn't have .length return arg;
}
- 联合类型:变量可满足多个类型,将不同类型以and关系连接。
let union: number | string | boolean;
结束语
typeScript虽然是带类型的javaScript,但投入使用还是需要把类型系统完全掌握。本文只是简单的描述了常用的类型种类。后续还有很多要学习。希望大家一起学会ts。
如果你看到面前的阴影,别怕,那是因为你的背后有阳光。