第一階段.模塊二:學(xué)習(xí)筆記-TypeScript基本類型

文章說(shuō)明:文章內(nèi)容為學(xué)習(xí)筆記,學(xué)徒之心,僅為分享; 如若有誤,請(qǐng)?jiān)谠u(píng)論區(qū)指出,如若您覺(jué)得文章內(nèi)容對(duì)您有一點(diǎn)點(diǎn)幫助,請(qǐng)點(diǎn)贊、關(guān)注、評(píng)論,共享

上一篇:第一階段.模塊二:學(xué)習(xí)筆記-js有關(guān)的
下一篇:第一階段.模塊二:學(xué)習(xí)筆記-es6的symbol

TypeScript 的基礎(chǔ)類型

1、布爾值 :

let bool:boolean = false

2、數(shù)值:

let num:number = 123

3、字符串:

let str:string ='hello world'
let str2:string = `我是字面量形式`

4、數(shù)組:

方式一:數(shù)組里面只有一種數(shù)據(jù)類型
let arr:number[]
arr = [1,2,3,4,5]
方式二:數(shù)組里面只有一種數(shù)據(jù)類型
let arr1:Array<number>
arr1 = [1,2,3,4,5]
方式三:數(shù)組里面有多種數(shù)據(jù)類型
let arr2:(number|string)[]
arr2 = [1,2,3,'hellow world']

5、元組:

注1:元組可以看成是數(shù)組的擴(kuò)展
注2:元組的數(shù)據(jù)長(zhǎng)度是有限的
注3:元組要聲明每一個(gè)item是哪種數(shù)據(jù)類型,元素不對(duì)應(yīng)就會(huì)報(bào)錯(cuò),多一個(gè)/少一個(gè)都不行
let tuple:[number,number,boolean,string]
tuple = [1,2,false,'hello world'] 正確
tuple = [1,2,3,'hello world'] 錯(cuò)誤

6、枚舉值:

注1:使用關(guān)鍵字 【enum】 來(lái)聲明枚舉
注2:枚舉變量的首字母最好大寫(xiě)
注3:枚舉里面的元素的key最好大寫(xiě)
---------------------
---------------------
默認(rèn)枚舉的索引:
enum Role {
    SUPPER_ADMIN,
    ADMIN,
    USER
}
console.log(Role.SUPPER_ADMIN) // 返回的是索引 0
console.log(Role.ADMIN) // 返回的是索引 1
console.log(Role.USER) // 返回的是索引 2
---------------------
---------------------
自定義枚舉的索引1:
enum Role {
    SUPPER_ADMIN = 2,
    ADMIN,
    USER
}
console.log(Role.SUPPER_ADMIN) // 返回的是索引 2
console.log(Role.ADMIN) // 返回的是索引 3
console.log(Role.USER) // 返回的是索引 4
---------------------
---------------------
自定義枚舉的索引2:
enum Role {
    SUPPER_ADMIN,
    ADMIN =4,
    USER
}
console.log(Role.SUPPER_ADMIN) // 返回的是索引 0
console.log(Role.ADMIN) // 返回的是索引 4
console.log(Role.USER) // 返回的是索引 5

7、any 類型:

注1: any類型 就是js的數(shù)據(jù)類型都可以
注2: 盡量少用,能不能則不用
let val:any
val = 123
val = 'hellow world'
val = false
val = [123,456]
const arr:any[] =[1,'hello']
等等...

8、void 類型:

注1: void類型 就是什么類型都不是
注2: 盡量少用,能不能則不用
---------------------
---------------------
函數(shù)沒(méi)有返回任何數(shù)據(jù),即返回的就是void類型
**void類型的值可以是undefined和null**
const fun1 = (text:string):void =>{
    console.log(text)
}
fun1('hello world') // 正確
fun1(123) // 錯(cuò)誤 傳入的值的類型不是字符串

9、null 和 undefined 類型:

注: null 和undefined 是其他類型的子類型
let un: undefined
un = undefined
let nu: null
nu = null

10、never 類型:

注1: never類型 是永遠(yuǎn)不存在的值的類型
注2: never類型 是任意類型的子類型
異常函數(shù):
const errorFun = (msg:string): never => {
    throw new Error(msg)
}
errorFun('函數(shù)的返回值是never類型')

死循環(huán)函數(shù):
const dieFun = (): never => {
    while(true){}
}

11、object 類型:

注1:存放的是對(duì)象在內(nèi)存中(首地址)的引用
注2:object 類型,不是單指對(duì)象類型,而是除了原始類型以外的其他類型
例如: const foo: object = function(){} 
const foo: object = []  const foo: object = {}
注2:對(duì)象類型的限制,可以用 const foo:{a:number,b:string} = {a:100,b:'你好'}來(lái)限制

let obj={
    name :'小明'
}
let obj2 = obj
obj2.name ='花花'
console.log(obj.name) // 花花

const getObj = (obj:object) =>:void {
    console.log(obj)
}
getObj(obj2) // 花花

12、類型斷言:

注:類型斷言就是我們開(kāi)發(fā)人員自己決定變量的類型是什么
寫(xiě)法一:(value as 需要的類型)
寫(xiě)法二:(<需要的類型>value)
推薦第一種,因?yàn)樵趯?xiě)recat代碼的時(shí)候,第二種會(huì)被看成html的標(biāo)簽

const getLength = (value:string | number):number => {
    if ((value as string).length || (<string>value).length == 0) {
        return (value as string).length
    } else {
        return value.toString().length
    }
}
getLength('hellow')
getLength(01234)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容