TypeScrip基礎(chǔ)

數(shù)組、元祖

數(shù)組:
let list = [1,'ddd']
let list2: any[] =[1,'ddd',true]
let list3: Array<number> = [1,2,3,4]
元祖類型:
let person1:[number, string]=[1,''阿萊克斯]
1.元祖bug ,使用元祖.push可以突破元祖的界限,無(wú)限度的給元祖添加長(zhǎng)度。
2.聲明元祖的時(shí)候一定要指明類型

聯(lián)合(Union)與文獻(xiàn)(Literal)類型

1.聯(lián)合類型就是一個(gè)類型的變量可以同時(shí)支持一個(gè)或幾個(gè)不同的類型,支持的類型之間|隔開
let union : string | number

function merge(n1: number | string, n2: number | string){
    if(typeof n1 === 'string' || typeof n2 === 'string')
       return n1.toString() + n2.toString();
    else   
    return n1+n2;
}

2.字面量類型(literal),使用非常靈活,可以使用不同類型
let union3: 0 | 1 | 2
let literal : 1 | '2' | true | [1,2,3,4]

function merge(n1: number | string, n2: number | string, resultType: 'as-number' | 'as-string'){
    if(resultType === 'as-string'){
        return n1.toString() + n2.toString();
    }
    if(typeof n1 === 'string' || typeof n2 === 'string')
       return n1.toString() + n2.toString();
    else   
    return n1+n2; 
}
console.log(merge(1,2,"as-number"))//打印3
console.log(merge(1,2,"as-string"))//打印12
console.log(merge('hello','world'))//打印helloworld
枚舉類型(Enum)
enum Color {
    red = 'red',
    green = 'green',
    blue = '3',
}
let color = Color.green
console.log(color);//打印green
any 和 unkown未知類型
//any
let randomValue: any = 666;
//unkonwn未知類型
let randowValue: unknown === 666
//randowValue()時(shí)會(huì)報(bào)錯(cuò)提示 
if(typeof randomValue === 'function'){
     randowValue()//這樣就不會(huì)報(bào)錯(cuò)了
}
void、undefined 與 never

一個(gè)函數(shù)沒有任何返回的情況下,函數(shù)就是一個(gè)void類型,typescript中可以指定類型:

function printResult() : void {
console.log('lalala');
}

原生javascript中是沒有void的
undefined和void區(qū)別是 前者是有但是沒有賦值,后者是壓根沒有這個(gè)東西。

function printResult() :undefined {
console.log('lalala');
return 
}

一個(gè)函數(shù)永遠(yuǎn)執(zhí)行不完 never

function throwError(message: string, errorCode: number):never{
     throw {//拋出異常
        message,
        errorCode
     }
}
throwError("not fount",404);

function whileLoop():never {
    while(true){
      console.log('hehehe');
    }
}

3-9 類型適配(類型斷言)Type Assertions
//3-9類型適配(類型斷言)Type Assertions
let message : any;
message = 'abc';//這個(gè)時(shí)候message還是any類型

let ddd = (<string>message);//這個(gè)時(shí)候ddd就是字符串類型了
//另一種寫法
let ddd2 = (message as string)
3-10 函數(shù)類型
//javascript 和 typescript最大的區(qū)別是typescript可以定義類型
let log = (message: string) => console.log(message)
log('hello');
let log3 = (message: string, code: number) => {
    console.log(message,code)
}
//在typescript中調(diào)用函數(shù)和javascript有一個(gè)顯著的不同,typescrip中如果定義了兩個(gè)函數(shù),就必須填寫所有的參數(shù),而且類型必須匹配一致
log3('hello',3)
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 還未更新完畢,后面會(huì)持續(xù)增加內(nèi)容 常量&變量 什么是常量和變量 在Swift中規(guī)定:在定義一個(gè)標(biāo)識(shí)符時(shí)必須明確說明...
    chenfanfang閱讀 1,169評(píng)論 0 5
  • 姓名:謝艾芳 學(xué)號(hào):16040410073 Swift基礎(chǔ)知識(shí)(接上一篇) 轉(zhuǎn)自http://www.jiansh...
    天使和雙彩虹2閱讀 296評(píng)論 0 0
  • 初見swift 打印‘hello world' print("hello world"); 教程 類型 基礎(chǔ)類型:...
    PanPan1127閱讀 878評(píng)論 0 2
  • 1、常量和變量 變量: var 常量: let 常量&變量的使用原則:盡量先用 let,只有需要變的時(shí)候,再用 v...
    CoderSC閱讀 348評(píng)論 0 0
  • Swift 簡(jiǎn)介 . Swift 是蘋果公司余2014年推出的新語(yǔ)言,用于iOS 和 OS X 的應(yīng)用編程 Swi...
    joses閱讀 511評(píng)論 0 1

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