普通的js類型指定
let dName: String = 'dav'
let age: Number = 22
let flag: Boolean = false
//聯(lián)合類型,可以申明多種類型,中間用|隔開
let strArr: String | Number = '張飛'
strArr = 24
//數(shù)組也可以使用聯(lián)合類型
let arr: String[] = ['張三', '李四']
let brr: Array<String> = ['王五', '趙六']
let nArr: String[] | number[] = ['張三', '李四']
nArr = [1, 2]
let nBrr: Array<String | Number> = ['王五', '趙六']
nBrr = [3, 4]
let crr: [String, Number, Boolean] = ['關(guān)羽', 28, true] //元組 指定類型和數(shù)組長度
TS新增類型
//枚舉關(guān)鍵字 enum 創(chuàng)建一個枚舉對象
enum GunType {
//枚舉項 = 枚舉值--不寫枚舉值默認從0開始添加
'a' = 0,
'b' = 1,
'c' = 2
}
enum GoType {
c,
d,
e
}
let dry: GunType = GunType.a
let cry: GoType = GoType.c
console.log(dry) //0
console.log(cry) //0
//any類型一般用在獲取DOM上
let btn: any = document.getElementById('btn')
//void類型代表沒有類型,一般用在沒有返回值的函數(shù)
function fn(): void {
console.log('可以沒有返回')
}
function fn1(): String {
return '必須返回指定類型'
}
//never類型 不存在的類型,用作拋出異常是沒有返回
函數(shù)function類型
// function
function neFn(a: Number, b: String): String {
return a + '' + b
}
let test: String = neFn(18, '張三')
console.log(test)
// function可選參數(shù) ?,在形參后面加上?就表明這個參數(shù)可傳可不傳
function cfun(a: String, b?: Number): void {
console.log(a)
}
cfun('李四')
// function 參數(shù)默認值 =值 可以在參數(shù)后面加 =和值 來定義默認值
function dfun(a: string = '黃忠', b: number = 16): void {
console.log(a + '' + b)
}
//調(diào)用的時候如果沒有傳對應的實參,則會自動使用默認值
dfun() // 黃忠16 ---兩個參數(shù)都使用默認值
dfun('張飛') //張飛16 ---第二個參數(shù)使用默認值
dfun('關(guān)羽', 25) //關(guān)羽25 ---兩個參數(shù)都不用默認值
// 當你第二個參數(shù)傳,第一個參數(shù)想使用默認值時可以給第一個參數(shù)傳undefined
dfun(undefined, 18) //黃忠18 ----第一個參數(shù)使用默認值
//function剩余參數(shù)
//當你的函數(shù)不確定后面要傳幾個參數(shù)時,除了固定參數(shù),后面的所有參數(shù)可以用...和一個數(shù)組來接收,只能使用一個剩余參數(shù)
function add(x: number, y: number, ...z: number[]): number{
let lum: number = x + y
if (z) {
z.forEach(item => {
lum += item
})
}
return lum
}
console.log(1,2) //3
console.log(add(1,2,3,4,5,6,7,8,9)) //45