TypeScript 笔记
typescript 虽然加大了工作量,但是可以降低后期维护成本,可以做到代码即文档。
TypeScript上手第一步
- 安装
npm install -g typescript - 编译一个ts文件
tsc hello.ts - 推荐使用编辑器VScode
http://code.vusyalstudio.com/
基本声明类型
- 在变量后面使用:(类型)即可 如下
- let a : string = "abc"
- 空值
- js中没有空值的概念,在ts中,void可以表示没有任何返回的函数
- 声明一个void变量没有什么用,因为他只能是undefined和null
- 任意值
- 声明了类型就不允许该变量拥有其他类型的值,这时候就需要一个任意变量类型
- 声明一个任意值之后,对他任何操作返回的都是任意值
- 如果一个变量未被声明类型,那么他的类型就是任意值
- 类型推论
- ts会在没有明确声明的时候推测一个类型
- 联合类型
- 可以使用|进行多个类型声明
- 对象类型 --- 接口
- interface Person{ name:string }; let a : Person ={ name:"abc" }
- interface会声明一个接口,然后这个接口可以定义对象里面的值跟类型
- 这里声明几个属性,就只能写几个属性,多了就会报错。
- 如果希望接口有一个未定义的属性就可以写[propName:string]:any来声明可以有一个未声明属性的存在
- 如果想定义一个可有可无的属性那么可以写age?:number
- 那么这个属性就可有可无,不是必要的属性
- 如果想定义一个不可被修改的只读属性可以使用 readonly id: number 来定义
- 数组类型
- 数组的声明类型跟基本类型用法一样,也可以用接口表示
- 一般数组就给一个any是最常用的
- 其他不常用的就见官网讲解吧= =
- 函数类型
- 参数定义类型,并且传参的时候不可以传递多余的参数
- 参数定义了就是必填的,要么就定义可选参数或者用扩展运算接收参数
- 扩展运算符也是要定义类型的,一般用any即可
- function sum():number 这里是return的数据类型
- 类型断言
- 断言可以手动指定一个值的类型。
- 写法: 值 as 类型。
- 我。。。这个东西写起来好复杂,去阮一峰文档看吧,一两句说不清楚,要想写下去估计我得复制很多东西。
- 一般解决ts中应该不报错却报错了的问题,不常用。
- 声明文件
- 断言可以手动指定一个值的类型。
- 写法: 值 as 类型。