TypeScript入门笔记

基础类型

let str:string = 'test'
let num:number = 12345
let bool:boolean = false
let und:undefined = undefined
let abc: string | number | boolean = false

//大写的类型名可以接受对象
let str2:String = new String('test2)

数组和对象

//数字数组类型
let arr1:number[] = [12]

//元组类型
let arr2:[number, string, number?] = [12, 'ab']  //第三项为可选
let arr3:[number,string,...(number|string)[]] = [2, 'a', 3, 'b'] //第1项为数字、第2项为字符串,其它为数字或字符串类型
let obj:{} = {a: 123, c: 23}   //空对象类型,代表对象无限制
let obj2:{a:number,b:string,c?:number} = {a: 2, b: 'b2'} //指定固定的属性
let obj3:{[propsName:number]:string} = {1: 'a', 22: 'bb'} //指定属性key的类型,这种不限制属性数量

函数

//直接定义一个函数的参数和返回
function f1(a:string):string {}

//定义一个函数变量
let f2:(a:string) => string = function(a:string):string {
  return 123
}

function f3(a:boolean, b?:number,...args:(number|string)[]):(number|string) {
  console.log('args', args)
  return args
}
//第1个参数为布尔,第2个为可选的数字,其它的为数字或字符串
f3(false, 2, 'a', 3, 4, 'c')

//函数参数默认值和可选
function f4(a=false, b?:number): number {
  if (a) {
    return 1
  } else {
    return b || 0
  }
}
f4()   //输出:0
f4(false, 12)   //输出:12

class TsClass {
  public pub = 123
  static sta = 345
  readonly rea = 567
  protected pro = 789
  private pri() {
    //内部才可以读取保护的属性
    console.log(this.pro)
  }
}

new TsClass().pub = 234
new TsClass().pro = 890 //保护的属性,外部调取会报错

特殊类型和高级类型

//unknown和any类型都可以分配任何值
//unkown相当于更安全的any,unkown

let value:unknown = {}
let value2:any = 123
//any可以分配给其它类型
let value3:string = value2
//unknow不能分配给其它类型,只能分配给unkown
let value4:string = value  //报错

接口与type

泛型和断言

ts的类型推导机制

枚举和symbol

工程化编译与tsconfig全

Vue2,Vue3,React实战TS

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容