- TypeScript入門與實(shí)戰(zhàn)
- 鐘勝平編著
- 565字
- 2021-01-15 15:35:48
1.1.1 始于JavaScript,終于JavaScript
TypeScript是一門專為開(kāi)發(fā)大規(guī)模JavaScript應(yīng)用程序而設(shè)計(jì)的編程語(yǔ)言,是JavaScript的超集,包含了JavaScript現(xiàn)有的全部功能,并且使用了與JavaScript相同的語(yǔ)法和語(yǔ)義。因此,JavaScript程序本身已經(jīng)是合法的TypeScript程序了。
開(kāi)發(fā)者不但能夠快速地將現(xiàn)有的JavaScript程序遷移到TypeScript,而且能夠繼續(xù)使用依賴的JavaScript代碼庫(kù),比如jQuery等。因此,就算現(xiàn)有工程中依賴的第三方代碼庫(kù)沒(méi)有遷移到TypeScript,它也不會(huì)阻礙程序開(kāi)發(fā)。反之,TypeScript能夠讓我們更好地利用現(xiàn)有的JavaScript代碼庫(kù)。
TypeScript代碼不能直接運(yùn)行,它需要先被編譯成JavaScript代碼然后才能運(yùn)行。Type-Script編譯器(tsc)將負(fù)責(zé)把TypeScript代碼編譯為JavaScript代碼。
例如,一個(gè)TypeScript文件的內(nèi)容如下:
01 function sum(x: number, y: number): number { 02 return x + y; 03 } 04 05 const total = sum(1, 2);
經(jīng)過(guò)編譯后輸出的JavaScript文件的內(nèi)容如下:
01 "use strict"; 02 function sum(x, y) { 03 return x + y; 04 } 05 const total = sum(1, 2);
目前,我們不需要理解這段程序所實(shí)現(xiàn)的具體功能。僅通過(guò)對(duì)比編譯之前和之后的代碼,我們能夠看到編譯器生成的JavaScript代碼既清晰又簡(jiǎn)潔,并且兩者之間在代碼結(jié)構(gòu)上幾乎沒(méi)有明顯變化。在閱讀由編譯器生成的JavaScript代碼時(shí),并不會(huì)讓開(kāi)發(fā)者強(qiáng)烈地感覺(jué)到代碼是由機(jī)器生成的。相反,它符合開(kāi)發(fā)者平時(shí)的代碼編寫習(xí)慣。
讀到這里,你可能會(huì)產(chǎn)生一個(gè)疑問(wèn),是不是因?yàn)槭纠绦蛱?jiǎn)單了,所以生成的代碼才會(huì)如此清晰簡(jiǎn)潔?答案是否定的。實(shí)際上這種行為是TypeScript語(yǔ)言的基本設(shè)計(jì)原則之一:TypeScript應(yīng)該生成簡(jiǎn)潔、符合編寫習(xí)慣并易于識(shí)別的JavaScript代碼;TypeScript不應(yīng)該對(duì)代碼進(jìn)行激進(jìn)的性能優(yōu)化。
- 自己動(dòng)手實(shí)現(xiàn)Lua:虛擬機(jī)、編譯器和標(biāo)準(zhǔn)庫(kù)
- Visual FoxPro程序設(shè)計(jì)教程
- OpenStack Cloud Computing Cookbook(Fourth Edition)
- 老“碼”識(shí)途
- Effective Python Penetration Testing
- Access 2016數(shù)據(jù)庫(kù)管
- Android Native Development Kit Cookbook
- Linux操作系統(tǒng)基礎(chǔ)案例教程
- Salesforce Reporting and Dashboards
- Learning Continuous Integration with TeamCity
- Mastering ArcGIS Enterprise Administration
- C# Multithreaded and Parallel Programming
- 算法設(shè)計(jì)與分析:基于C++編程語(yǔ)言的描述
- HTML并不簡(jiǎn)單:Web前端開(kāi)發(fā)精進(jìn)秘籍
- IBM DB2 9.7 Advanced Application Developer Cookbook