首页 > 科技 >

Typescript基本类型

2019-09-02 07:51:46 暂无 阅读:612 评论:0
Typescript基本类型

根基类型

类型讲解

感化:相当于强类型说话的类型声明

语法:(变量/函数):type

原始类型 //原始类型

let bool:boolean = true;

let num:number = 123;

let str:string = 'asd'

若是将str变量改成number类型,就会提醒报错,ts不许可改变变量的数据类型

Typescript基本类型

数组类型两种界说体式 //数组类型

let arr1:number[] = [1,2,3]

let arr2:Array<number> = [1,2,3]

ts只许可数组中包罗一种数据类型的值,在数组arr1中添加字符串类型的值就会报错

Typescript基本类型

若是想为数组添加分歧类型的值,需要使用结合类型 //结合类型

let arr1:number[] | string[] = [1,2,3]

let arr2:Array<number | string> = [1,2,3]

元组类型限制了数组的类型和个数,数组值必需安装声明变量时的类型一致,个数必需一致,不然都邑报错。 let tuple:[number,string] = [1,'a'] //准确

let tuple2:[number,string] = ['a','a'] //错误,不克将字符串a赋值给nuumber

let tuple3 = [number,string] = [1,'a',3] //错误,数组中只能有两个值

元组越界问题:向元组中push一个值 let tuple:[number,string] = [1,'a']

tuple.push(2)

console.log(tuple) //[1,'a',2],能够看出能够向tuple使用push方式添加

//然则不克接见,会报错。

tuple[2]

Typescript基本类型

函数 let add = (x:number,y:number):number => x+y;

ts要求给函数参数供应类型值,返回值一样不需要供应类型值,ts会主动使用推导出返回值类型。

对象 let obj:object = {

a:1,

b:2,

}

// 如许写不许可点窜对象的变量值

obj.a = 3 //报错

准确做法:给变量直接赋值对应的类型

let obj2:{a:number,b:number} = {

a:1,

b:2,

}

obj2.a = 3 //准确

Symbol

具有独一的值

两种界说体式 let s1:symbol = Symbol()

let s2 = Symbol()

//此时s1和s2是不相等的

console.log(s1 === s2) //false

null 和 undefined let nu:null = null;

let un:undefined = undefined;

void

让任何表达式返回undefined

没有任何返回值 let noReturn = () => {}

any能够是任何类型的值

never永远不会有返回值 let error = () => {

throw new Error('err')

}

let endless = () => {

while(true){

}

}

列举类型一组有名字的常量鸠合

数字列举使用enum界说列举 // 正常列举值是从0起头

enum Role {

Reporter, //0

Developer, //1

Main, //2

Owner, //3

Guest, //4

}

console.log(Role.Reporter) //0

//自界说列举值,自界说后的值,需要一次往下递增

enum Role2 {

Reporter == 1, //1

Developer, //2

Main, //3

Owner, //4

Guest, //5

}

打印一下Role,是个对象。能够凭据key和value索引

Typescript基本类型

列举的实现道理:反向映射,看下图

Typescript基本类型

字符串列举 enum Msg {

Success = '成功',

Erros = '失败'

}

字符串列举弗成以反向映射

Typescript基本类型

异构列举就是字符串列举和数字列举混用,不介绍使用 enum Answer {

N,

Y = 'yes'

}

列举成员性质不克点窜界说后的列举值 enum Char {

//常量列举

a,

b = Char.a,

c = 1+ 3,

//需要被较量的列举成员

d = Math.random(),

e = '123'.length

}

常量列举(三种):会在编译时编译出究竟

没有初始值

对已有列举成员的引用

常量表达式

需要被较量的列举成员

在执行时才管帐算出究竟

看下编译究竟

常量列举:在编译时编

需要被较量的列举成员:没有编译出究竟

Typescript基本类型

常量列举用const声明的列举 const enum Month {

Jan,

Feb

}

会在编译阶段会被移除

Typescript基本类型

列举类型 enum E {a,b} //没有值

enum F {A=0,B=1} //数字列举

enum G {a='a',b='b'} //字符串列举

相关文章