typescript入门| 青训营笔记

36 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

typescript

typescript是用于规范js代码,避免开发出现的许多问题。相比于js,ts使用了静态类型,明确的规定了变量的类型。

基本类型

  • 字符串(string)
  • 数字(number)
  • 布尔值(true)
  • null
  • undefined
  • void(空值)
  • never(没有值)
  • object(对象)
  • array(数组)
  • tuple(元组)
  • enem(枚举)枚举值枚举名正反映射
  • any(未知)
  • unkown(未知,更安全不可赋给其他值)
  • 字面量(写什么只能用那个值)

关键字

interface:接口

对象

interface 接口名{
     readonly(只读关键字) key:type;
     key ?:type(可选);
     [key:string]:type(其余值);
     key:type
}

函数

interface 接口名{
	(参数名1type,参数名2type):type(返回值);
     (参数名1type,参数名2type):type(返回值);(函数的重载,提供多个可选项)

}

数组

interface 接口名{
     [key:number]:any
}

|:联合

a|b

&:交叉

a&b

keyof

相当于取对象中所有的键做为字符串字面量

范型 in

遍历字面量中的每一种可能

extend

  • 限定范式类型
  • 类型推断,相当于三元表达式

infer

出现在类型推荐中,用于类型指代

type

指定别名

泛型

当类型在输入是才确定时,同时可以用于表示两个便量类型相同,相当于变量

写法

用于函数:
<T>(arg:T)=>T[]
用于别名:
type 别名<T>=(arg:T)=>T[]

泛型约束

泛型名后用extends关键字

泛型参数默认

类似于es6中的默认参数

数组类型

  • 类型+【】

    type Iarr1=number[];
    
  • 范式表示

    type Iarr2=Arry<string|number|Record<string,number>>
    

    Arry,Record分别为数组核对像的别名

  • 接口表示

    interface Iarr3{
         [key:number]:type
    }
    
  • 元组表示

    type Iarr4=[number,number,string,string]
    

ts的编译

使用node工具在根目录输入npx tsc 文件就能够生成以各编译以后的js文件,再将这个js文件引入页面,就能够正常使用