一起來學(xué)習(xí)TypeScript的類型_第1頁
一起來學(xué)習(xí)TypeScript的類型_第2頁
一起來學(xué)習(xí)TypeScript的類型_第3頁
一起來學(xué)習(xí)TypeScript的類型_第4頁
一起來學(xué)習(xí)TypeScript的類型_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論