文章說明:文章內(nèi)容為學習筆記样悟,學徒之心,僅為分享; 如若有誤,請在評論區(qū)指出窟她,如若您覺得文章內(nèi)容對您有一點點幫助陈症,請點贊、關(guān)注震糖、評論录肯,共享
上一篇:第一階段.模塊二:學習筆記-js有關(guān)的
下一篇:第一階段.模塊二:學習筆記-es6的symbol
TypeScript 的基礎類型
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ù)組的擴展
注2:元組的數(shù)據(jù)長度是有限的
注3:元組要聲明每一個item是哪種數(shù)據(jù)類型厅贪,元素不對應就會報錯,多一個/少一個都不行
let tuple:[number,number,boolean,string]
tuple = [1,2,false,'hello world'] 正確
tuple = [1,2,3,'hello world'] 錯誤
6雅宾、枚舉值:
注1:使用關(guān)鍵字 【enum】 來聲明枚舉
注2:枚舉變量的首字母最好大寫
注3:枚舉里面的元素的key最好大寫
---------------------
---------------------
默認枚舉的索引:
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ù)沒有返回任何數(shù)據(jù),即返回的就是void類型
**void類型的值可以是undefined和null**
const fun1 = (text:string):void =>{
console.log(text)
}
fun1('hello world') // 正確
fun1(123) // 錯誤 傳入的值的類型不是字符串
9蜀变、null 和 undefined 類型:
注: null 和undefined 是其他類型的子類型
let un: undefined
un = undefined
let nu: null
nu = null
10悄谐、never 類型:
注1: never類型 是永遠不存在的值的類型
注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:存放的是對象在內(nèi)存中(首地址)的引用
注2:object 類型,不是單指對象類型库北,而是除了原始類型以外的其他類型
例如: const foo: object = function(){}
const foo: object = [] const foo: object = {}
注2:對象類型的限制尊沸,可以用 const foo:{a:number,b:string} = {a:100,b:'你好'}來限制
let obj={
name :'小明'
}
let obj2 = obj
obj2.name ='花花'
console.log(obj.name) // 花花
const getObj = (obj:object) =>:void {
console.log(obj)
}
getObj(obj2) // 花花
12、類型斷言:
注:類型斷言就是我們開發(fā)人員自己決定變量的類型是什么
寫法一:(value as 需要的類型)
寫法二:(<需要的類型>value)
推薦第一種贤惯,因為在寫recat代碼的時候洼专,第二種會被看成html的標簽
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)