// 布尔值
let flag:boolean = true
// 数字类型
let a1:number = 10 // 十进制
let a2:number = 0b1010 // 二进制
let a3:number = 0o12 // 八进制
let a4:number = 0xa // 十六进制
// 字符串类型
let name:string = 'tom'
name = 'jack'
// undefined类型、null类型
let und:undefined = undefined
let nll:null = null
注意:在非严格模式下(即tsconfig.json中strict为false时), 你可以把 null 和 undefined 赋值给其它类型的变量。
let num2:number = null
let desc:string = undefined
总结:ts中变量一开始是什么类型的值,后期赋值时,不允许其它类型的值赋值给它
let arr1:number[] = [10,20]
let arr2:Array<number> = [1,2]
let arr3:[string,number,boolean] = ['hello',100.986,true]
console.log(arr3)
console.log(arr3[1].split())
console.log(arr3[1].toFixed(2))
object 表示非原始类型,也就是除 number,string,boolean之外的类型。
function getObj(obj:object):object{
console.log(obj)
return {
name:'',
age:100
}
}
let info:object = {}
let strs:any = 100
strs = "hello any!"
// 当一个数组中要存在多个任意类型的数据时,可用any
let arr4:any[] = [100,"字符串",true]
在函数声明时,小括号后面使用 :void ,表示该函数没有返回值:
function showMsg():void{
console.log('show msg')
}
function toString2(x: number | string) : string {
return x.toString()
}
类型断言的书写方式
//定义一个函数,得到一个数字或字符串值的长度
function toString3(x: number | string) : number {
if((<string>x).length){ // 类型断言写法一 <>值
return (x as string).length // 类型断言写法二 值 as 类型
} else {
return x.toString().length
}
}
console.log(toString3(100))
console.log(toString3('hello world!'))
let txt = 100 // 推断是number类型
// txt = 'hello' 报错
console.log(txt)
let txt2; // 推断是any类型
txt2 = 100
txt2 = 'how are you?'
console.log(txt2)