ts中使用冒号加数据类型的方式限定数据的类型
boolean
let a: boolean = true
string
srting 也可以使用 es6中的模板字符串
let str: string = "12133"
let str1: string = `${str}123`
console.log(str,str1)
number
let num1: number = 333
console.log(num1)
array
let list: number[] = [123, 1232]
console.log(list)
let list1:Array<number>=[125,456]
console.log(list1)
声明数组的时候有两种方式
变量名后面跟一个 :数据类型 然后 [] 即可限定数组中数据的类型,但是,这样写,数组中的数据只能是指定类型的
或者 变量名:Array<数组中数据的类型>=数据
元组
定义一个已经知道数量和类型的数组
let list:[number,string]=[123,"456"]//没有问题
//但是如果继续操作
list = ["000",111]//就会报错
枚举 enum
- enum 枚举的时候默认取出的是下标
- 我们可以修改下标的值
- 要取出枚举中的值的时候,可以用对应的下标取出
enum Color { Red, GREEN, BLUE }
let c: Color = Color.Red
console.log(c)//0
enum Color1 { Red = 1, Green = 2, Blue = 3 }
let c1: Color1 = Color1.Green
console.log(c1)//2
enum Color2{ Red = 1, Green, Blue }
// let c2: Color2 = Color2.Green
let colorName: string = Color2[3]
console.log("colorName",colorName)//Blue
any
在不确定数据类型的时候,可以使用any 定义数据,表示数据可以定义为任意类型
let notSure: any = 4
notSure = "你好啊"
notSure = false
console.log(notSure)//false
当定义一个数组,不确定数组中的数据类型的时候,也可以用any
let listany: any[] = [1, true, "fee"]
listany[1] = 100
console.log(listany)
void
void表示没有任何类型,当函数没有返回值时可以使用void
function handle(): void{
console.log("没有返回值")
}
void 定义变量的时侯,变量的值只能定义为null,或者 undefined
let n1: void = null
let u1:void = undefined
null
null,只能定义值为null的数据
let n:null = null
undefined
undefined,只能定义值为undefined的数据
let u:undefined = undefined
never
never 表示那些不纯在的值,或者一些永远无法到达终点的值
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}
object
object 对象类型,也就是非原始类型,不是string,number,boolean,array,enum,any,void,null,undefined,never的类型
let obj:object={}
类型断言
要清楚的知道数据比当前类型更确切的数据类型,需要进行类型转换
let str4: any = "123"
let strlength: number = (str4 as string).length
let str1length: number = (<string>str4).length
console.log(strlength,str1length)