基本类型实例
TypeScript分文基本数据类型和引用数据类型
TypeScript基本类型有:any 类型、number 类型 、boolean 类型 、 数组类型、元组类型、enum 枚举类型、void 类型、null 类型、 undefine 类型、 never 类型
基本数据类型
// any类型:允许被赋值为任何类型
let anyArr:Array<any> = [999,'2222',true,undefined]
console.log(anyArr) // [ 999, '2222', true, undefined ]
// number类型
let numberArr:Array<number> = [111,222,333]
console.log(numberArr) // [ 111, 222, 333 ]
// boolean类型
let booleanArr:Array<boolean> = [true,false,true,true]
console.log(booleanArr) // [true,false,true,true]
// 数组类型
let arr:Array<string> = ['fffs','ttt','pppp']
console.log(arr) // ['fffs','ttt','pppp']
//元组类型: 合并不同类型的对象
let x:[boolean,string,number,any] = [false,'zs',21, null]
console.log(x) // [false,'zs',21, null]
//enum 枚举类型: 使用枚举我们可以定义一些带名字的常量。 使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举。
//数字枚举,Up初始化为5,其余的成员从5开始自动增长,不定义则默认为0
enum Direction {
// Up,
Up = 5,
Down,
Left,
Right
}
console.log(Direction.Up,Direction.Left,Direction.Right) // 5 7 8
//在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。
enum tyNum {
Up = 'UP',
Down = 'Down',
Left = 'Left',
// Right , // 报错
Right = 'Right',
}
console.log(tyNum.Up,tyNum.Left,tyNum.Right) // UP Left Right
// void类型:空类型,方法没有返回值
function lianxi(): void {
console.log('找食物')
// return 'ffff' //报错
}
lianxi() // 找食物
//null, undefined
let s:null = null
let d:undefined = undefined
console.log(s,d) //null undefined
//never类型: 一个从来不会有返回值的函数,一个必须抛出错误的函数
//let foo: never = 123; Error: number 类型不能赋值给 never 类型
function bar():never {
throw new Error('Throw my hands in the air like I just dont care')
}
let foo:never = bar()
console.log(foo) // error Throw my hands in the air like I just dont care
引用数据类型
// 引用类型
let zhangsan = {
name: 'zhangsan',
age: 21,
website: 'zhangsan.com',
prossWork: function() {
console.log('zhangsan正在学习')
}
}
console.log(zhangsan.name)
zhangsan.prossWork()
/*
* 给数组赋值
*/
// 字面量赋值法
// 定义一个空数组,数组容量为0
let arr1:number[] = []
// 直接给数组赋值
let arr2:number[] = [1,2,3,4,5,6]
//定义数组的同时给数组赋值
let arr3:string[] = ['zhangsan','张三','wangwu']
// let arr3:Array<string> = ['zhangsan','张三','wangwu']
let arr4:Array<boolean> = [true,false,true]
console.log(arr1,arr2,arr3,arr4)
// 值错误类型必须相同
let arr5:number[] = [1,2,true,'ttt']
console.log(arr5)
// 构造函数赋值法
/* let arr1:number[] = new Array()
// 下面arr2四种对应方式等同
// let arr2:number[] = new Array(1,2,3,4,5)
// let arr2:Array<number> = new Array(1,2,3,4,5)
// let arr2:number[] = [1,2,3,4,5]
let arr2:Array<number> = [1,2,3,4,5]
let arr3:Array<string> = new Array('wu','zs','ls')
let arr4:Array<boolean> = new Array(true,false,false)
console.log(arr1, arr2, arr3, arr4); */