




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一起來學(xué)習(xí)TypeScript的類型目錄前言一、類型聲明二、類型1.number2.string3.boolean4.字面量5.聯(lián)合類型6.any7.unknown8.void9.never10.object11.array12.tuple13.枚舉enum14.其他總結(jié)
前言
TypeScript學(xué)習(xí)筆記第一部分,關(guān)于TS的類型聲明以及基本類型。
一、類型聲明
類型聲明類型聲明是TS非常重要的一個(gè)特點(diǎn)通過類型聲明可以指定TS中變量(參數(shù)、形參)的類型指定類型后,當(dāng)為變量賦值時(shí),TS編譯器會(huì)自動(dòng)檢查值是否符合類型聲明,符合則賦值,否則報(bào)錯(cuò)簡(jiǎn)而言之,類型聲明給變量設(shè)置了類型,使得變量只能存儲(chǔ)某種類型的值語法:
let變量:類型;
let變量:類型=值;
functionfn(參數(shù):類型,參數(shù):類型):類型{
}
自動(dòng)類型判斷TS擁有自動(dòng)的類型判斷機(jī)制當(dāng)對(duì)變量的聲明和賦值是同時(shí)進(jìn)行的,TS編譯器會(huì)自動(dòng)判斷變量的類型所以如果變量的聲明和賦值同時(shí)進(jìn)行時(shí),可以省略掉類型聲明
//先聲明類型再賦值
leta:string;
a='Hello';
//聲明類型并賦值
letb:number=123;
//聲明變量和賦值同時(shí)進(jìn)行
letc=false;
c=true;//編譯器自動(dòng)判斷變量c為boolean
二、類型
類型例子描述number
1,-33,2.5任意數(shù)字stringhi,HI任意字符串booleantrue,false布爾值true或false字面量其本身限制變量的值就是該字面量的值any*任意類型unknown*類型安全的anyvoid空值(undefined)沒有值(或undefined)never沒有值不能是任何值object{name:Alice}任意的JS對(duì)象array[1,2,3]任意JS數(shù)組tuple[4,5]元素,TS新增類型,固定長(zhǎng)度的數(shù)組enumenum{A,B}枚舉,TS中新增類型
1.number
leta:number;
a=10;
a=33;
//a='hello';變量a的類型是number,不能賦值字符串
2.string
letb:string;
b='hello';
//b=123;變量b的類型是字符串,不能賦值number
3.boolean
letc:boolean;
c=true;
4.字面量
letd:10;//此時(shí)d只能等于10
//letd=11;則會(huì)報(bào)錯(cuò),限制了該變量就是字面量的值(有點(diǎn)類似常量)
5.聯(lián)合類型
letA:boolean|string;//變量A既可以是布爾類型也可以是字符串類型
A=true;
A="Hello";
A=false;
A="World";
//字面量的聯(lián)合類型限制變量B只能是"male"或"female"
letB:"male"|"female";
B="male";
B="female";
//B="trans"錯(cuò)誤
6.any
任意類型,相當(dāng)于關(guān)閉了TS對(duì)類型的限制(盡量不要用)。
leta:any;
a=true;
a="hi";
a=123;
//如果聲明變量不指定類型,則TS解析器會(huì)自動(dòng)判斷變量的類型為any
letb;
b=true;
b="hi";
b=123;
注意any類型的變量可以賦值給任意變量,容易出現(xiàn)問題。
//any任意類型,相當(dāng)于關(guān)閉了ts對(duì)類型的限制(盡量不要用)
letB:any;
B=10;
B='string';
B=true;
letS:string;
S=B;//any類型可以賦值給任意類型變量,容易出現(xiàn)問題。
7.unknown
類型安全的any,不能直接賦值給其他變量。
leta:unknown;
a=10;
a="string";
a=true;
letb:string;
//b=a;賦值時(shí)編譯器會(huì)報(bào)錯(cuò),不能將“unknown”類型分配給“string”。
如果一定要賦值,可以賦值前類型判斷或者使用斷言。
leta:unknown;
a=10;
a=true;
a="string";
letb:string;
*斷言:
*1.變量as類型
*2.類型變量
b=aasstring;
b=string
*賦值前類型判斷
if(typeofc==='string'){
b=a;
}
8.void
沒有返回值=返回的是空值/undefined
functionfoo():void{
console.log(typeoffoo());//=undefined
functionfoo1():void{
returnundefined;
functionfoo3(){
//不寫void默認(rèn)為void
//寫了返回值不寫返回值類型=自動(dòng)判斷返回值類型
functionfoo4(){
return1;
console.log(typeoffoo4());//=number
9.never
沒有值,不能是任何值(連undefined都沒有)
functionfoo():never{
thrownewError('raise');
}
10.object
leto:{name:string,age:number};
o={
name:"Edison",
age:25
//定義可選參數(shù)
//[propName:string]:any任意類型的屬性
leta:{name:string,[propName:string]:any};
b={
name:'Edison',
age:24,
gender:"female"
//定義函數(shù)結(jié)構(gòu)
letfoo:(a:number,b:number)=number;
foo=function(n1,n2){
returnn1+n2;
}
11.array
/*
*元組:長(zhǎng)度和類型還有順序必須與儲(chǔ)存元素一一對(duì)應(yīng)
*[類型,類型]
leta=[string,number];
a=["hello",123];
//以下報(bào)錯(cuò)
a=[123,"hello"];
a=[123];
a=["hello"];
a=["hello",123,456];
12.tuple
/*
*元組:長(zhǎng)度和類型還有順序必須與儲(chǔ)存元素一一對(duì)應(yīng)
*[類型,類型]
leta=[string,number];
a=["hello",123];
//以下報(bào)錯(cuò)
a=[123,"hello"];
a=[123];
a=["hello"];
a=["hello",123,456];
13.枚舉enum
enumGender{
Male=0,
Female=1
letperson:{name:string,gender:Gender};
person={
name:"Edison",
gender:Gender.Male
}
14.其他
//同時(shí)滿足
leti:{name:string}{age:n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物農(nóng)藥在病蟲害綜合治理中的作用考核試卷
- 航空器飛行數(shù)據(jù)記錄器分析與應(yīng)用考核試卷
- 2025年耐磨球段項(xiàng)目合作計(jì)劃書
- 數(shù)字智慧方案5473丨人力資源HR信息化解決方案
- 《化學(xué)鍵的性質(zhì)》課件
- 2025年高密度聚乙烯土工膜項(xiàng)目建議書
- 中學(xué)數(shù)學(xué)課件:正確運(yùn)用解題方法與技巧
- 找拼音小游戲課件
- 2019-2025年統(tǒng)計(jì)師之初級(jí)統(tǒng)計(jì)工作實(shí)務(wù)能力提升試卷A卷附答案
- 2019-2025年初級(jí)銀行從業(yè)資格之初級(jí)銀行管理考前沖刺模擬試卷B卷含答案
- 2022年同等學(xué)力人員申請(qǐng)碩士學(xué)位日語水平統(tǒng)一考試真題
- 文學(xué)欣賞電子教案(全)完整版課件整套教學(xué)課件
- DBJ51∕T 153-2020 四川省附著式腳手架安全技術(shù)標(biāo)準(zhǔn)
- 游泳池設(shè)備操作培訓(xùn)課件
- 城軌道交通人因事故分析及評(píng)價(jià)研究
- (完整版)羊水栓塞應(yīng)急預(yù)案演練記錄
- ZYWL-4000型履帶式鉆機(jī)
- (高清版)建筑防護(hù)欄桿技術(shù)標(biāo)準(zhǔn)JGJ_T 470-2019
- 腦梗死標(biāo)準(zhǔn)病歷、病程記錄、出院記錄模板
- 50MPa路面抗折混凝土配合比
- 油閥座加工工藝與夾具設(shè)計(jì)說明
評(píng)論
0/150
提交評(píng)論