深入浅出 TypeScript| 青训营笔记

38 阅读2分钟

TypeScript

TS是JS的超集,忘了集合的就想象一下TS里面包着JS。它可以编译成纯JavaScript,能运行在任何浏览器上,并且支持ES6。是由微软开发的自由和开源的编程语言。

为什么要学TS

在我看来,技术这个东西永远都是更新迭代的,你不学有的是人学。多掌握一门技术就多一份竞争力。但是言归正传还是看看对比。

TSJS
JavaScript的超集,用于解决大型项目的代码复杂性一种脚本语言,用于创建动态网页
强类型,支持静态和动态类型动态弱类型语言
可以在编译期间发现并纠正错误只能在运行时发现错误
不允许改变变量的类型变量可以被赋值成不同类型

总结:TS是JS的扩展,TS可以在编译环节就发现问题,支持静态代码检测,还支持一些后端语言的特性。它带给我们类型安全、下一代JS特性、完善的工具链。

TS基础

基础类型
  • boolean:let isActive:boolean = false;
  • number:所有数字都是浮点数,支持二进制、八进制、十进制、十六进制。let age:number = 12;
  • string:let name:string = "tom"name = "jack"
  • 数组:数组元素可以是字符串或者数字等,有两种方式定义。
    • (1)在数组元素相应类型后接上[],表示这个类型组成的数组let list:number[] = {1,2];
    • (2)用数组泛型Array<元素类型>let list:Array<number> = [1,2];
  • 元组Tuple:元组就是元素类型不相同的数组。let x:[number,string]; x = [12,'tom'];
  • 枚举enum
  • any:编程阶段有的变量不能确定类型,比如用户输入的东西,就可以用any标记,防止被检查。let notSure:any = 4
  • never:表示用不存在的值,例如返回never。
  • unknown
  • void
  • undefined
  • null
函数类型

定义函数类型的时候,要定义入参和出参。入参支持可选参数和默认参数,出参如果没有就默认返回void。

支持函数重载,名称相同但参数不同,可以通过重载支持多种类型。

interface

用于定义对象类型。可以对类型命名。

在JS的基础上增加了public、private、protected修饰符。实现了抽象类、interface约束类。