書名: TypeScript+Vue.js前端開發(fā)從入門到精通作者名: 張益琿編著本章字?jǐn)?shù): 799字更新時(shí)間: 2024-12-30 15:12:13
2.1.2 TypeScript語(yǔ)言版本的HelloWorld程序

準(zhǔn)備好了開發(fā)環(huán)境,相信你已經(jīng)迫不及待地想要嘗試一下TypeScript的使用了。我們先通過(guò)最原始的方式來(lái)使用TypeScript,這有助于你對(duì)TypeScript的工作流程進(jìn)行理解。
可以使用任何文本編譯器來(lái)創(chuàng)建一個(gè)名為1.HelloWorld.ts的源碼文件,在其中輸入如下代碼:
【代碼片段2-1 源碼見附件代碼/第2章/1.HelloWorld/1.HelloWorld.ts】

代碼本身沒有太多邏輯,我們不做過(guò)多介紹。之后從終端進(jìn)入源碼文件所在的目錄下,執(zhí)行如下指令來(lái)進(jìn)行TypeScript源碼文件的編譯:
tsc 1.HelloWorld.ts
編譯成功后,你會(huì)發(fā)現(xiàn)目錄中多了一個(gè)1.HelloWorld.js文件,這就是編譯后的JavaScript目標(biāo)代碼,可以看到其中的代碼如下:

此JavaScript文件可以直接運(yùn)行。例如執(zhí)行如下指令,即可在終端看到輸出的“Hello, TypeScript”:
node 1.HelloWorld.js
你或許有些奇怪,TypeScript源碼和JavaScript目標(biāo)代碼看起來(lái)完全一樣。的確如此,因?yàn)樵赥ypeScript源碼中,我們尚未使用TypeScript提供的特性。下面我們?yōu)間etString函數(shù)增加返回值類型和參數(shù)類型,修改TypeScript源碼如下:

上面的代碼中,我們指定了getString函數(shù)中的參數(shù)為字符串類型,且此函數(shù)的返回值類型也是字符串類型。如果將此TypeScript代碼直接當(dāng)作JavaScript代碼來(lái)執(zhí)行,會(huì)遇到語(yǔ)法錯(cuò)誤的問(wèn)題,對(duì)其進(jìn)行編譯后,可以發(fā)現(xiàn)編譯產(chǎn)物與之前1.HelloWorld.js文件中的代碼一模一樣,編譯結(jié)果將這類TypeScript的類型信息去掉了。
或許你還是不理解,添加這些TypeScript的類型信息有什么用呢,編譯的產(chǎn)物不還是普通的JavaScript代碼,我們直接寫JavaScript代碼不是更加方便嗎?對(duì)于簡(jiǎn)單的項(xiàng)目的確如此,但是想象一下,當(dāng)項(xiàng)目變得龐大后,我們使用的JavaScript對(duì)象或函數(shù)都可能是其他模塊提供的,如果沒有明確的參數(shù)類型信息,使用者很可能不知道如何傳參,也極有可能傳遞了錯(cuò)誤的參數(shù),為項(xiàng)目埋下隱患,并最終在生產(chǎn)環(huán)境中以故障的形式出現(xiàn)。你可以嘗試一下,再次修改TypeScript的源碼如下:
【代碼片段2-2 源碼見附件代碼/第2章/1.HelloWorld/1.HelloWorld.ts】

上面的代碼在使用getString函數(shù)時(shí),我們故意將參數(shù)設(shè)置成數(shù)值類型,編譯此文件,可以看到控制臺(tái)會(huì)輸出如下異常信息:

這種編譯錯(cuò)誤的提示非常清晰,很方便開發(fā)者查找錯(cuò)誤原因,并且避免了錯(cuò)誤在運(yùn)行時(shí)才暴露的問(wèn)題。對(duì)于大型項(xiàng)目開發(fā)來(lái)說(shuō),這真的是太重要了。
- TypeScript Blueprints
- aelf區(qū)塊鏈應(yīng)用架構(gòu)指南
- Interactive Applications Using Matplotlib
- Expert Android Programming
- 名師講壇:Java微服務(wù)架構(gòu)實(shí)戰(zhàn)(SpringBoot+SpringCloud+Docker+RabbitMQ)
- 概率成形編碼調(diào)制技術(shù)理論及應(yīng)用
- Java 9模塊化開發(fā):核心原則與實(shí)踐
- Java程序設(shè)計(jì)
- 劍指Java:核心原理與應(yīng)用實(shí)踐
- HTML5 APP開發(fā)從入門到精通(微課精編版)
- AV1視頻編解碼標(biāo)準(zhǔn):原理與算法實(shí)現(xiàn)
- Visual Basic程序設(shè)計(jì)全程指南
- Building Business Websites with Squarespace 7(Second Edition)
- Microsoft Exchange Server 2016 PowerShell Cookbook(Fourth Edition)
- Visual C++程序開發(fā)范例寶典