(一)类型声明

  1. 类型声明是ts非常重要的一个特点

通过类型声明可以指定ts中变量(参数,形参)的类型,调用函数传参时,类型不能错和个数不能多也不能少,否则会报错

  1. 指定类型后,为变量赋值时,ts编译器会自动检查是否符合类型声明,符合则赋值,否则报错
  2. 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值
  3. 语法:

let 变量:类型

let 变量:类型 = 值

function fn(参数:类型,参数:类型):类型(函数返回值的类型,没有可不填){

}

(二)自动类型判断

  1. Ts拥有自动类型判断机制
  2. 当对变量的声明和赋值是同时进行的,ts编译器会自动判断变量的类型
  3. 所以变量的声明和赋值是同时进行时,可以不声明变量类型

(三)类型

类型

例子

描述

number

let a : number

let a : number = 10

任意数字

string

let a : string

let a : string = “10

类型断言

b = a as string

或者b= <string> a

任意字符串

boolean

True,false

布尔值

字面量

Let a:’male” | “female”

A=male

A=female

限制变量的值就是改字面量的值(其本身),可以使用“|”连接多个变量

any


任意类型,可以赋值给任意变量,赋值给其他变量b,b的类型也会变为any

unknow

Let a: unknow

A=10

A=’yyy’

未知类型的值,安全的any,不能直接赋值给其他变量,赋值需先判断

if(typeOf e === “string”)

void

function fn1():void {

return null

}

表示空,如没有返回值的函数

nerver

function fn2():nerver{

throw new error()

}

永远没有返回结果,常用于抛出错误

object

1、Let a:{name:string , age?: number}

A={name:’1”,age:2}

2、let b : {name:string , [propName:string]:any }

[propName:string]:表示可以有任意一个或多个属性,(对象的属性一定是字符串)

属性的值的类型设为any,不确定值的类型,防止报错

3、设置函数结构的类型声明(规定实参的个数和类型,不对应则报错)

(形参:类型,形参:类型。。。)=》返回值

Let d:(a:string,b:string)=>string

D=function (n1:string,n2:string):string{

Return n1+n2

}


对象中可以包含哪些属性

语法:{属性名:属性值,属性名:属性值}

array

Let a=number/string[]

或let a =Array< number/string >


tuple

Let h:[string,number]

H=[“张三“,1]

元组,固定长度的数组

【类型,类型,类型】个数、类型不对会报错

enum

Enum Gender{

Male=0, Female=1

}

Let i:{name:string,gender:Gender}

I={name:”张三”,gender:’Gender.male’}

枚举,在几个值范围键取值

(四)补充:

1、&表示同时

Let j : { name:string} & {age:string},表示对象j至少得有值字符串的name属性、值为字符串的age属性

J={name:”张三”,age:”1”},

2、类型的别名

Type mytype=1 | 2 | 3 | 4 | 5

Let k :mytype

K=2正确;k=7报错