官术网_书友最值得收藏!

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)化。

主站蜘蛛池模板: 桓台县| 平凉市| 平潭县| 响水县| 武冈市| 漾濞| 石景山区| 塔河县| 南康市| 方城县| 错那县| 乡宁县| 三明市| 海安县| 普兰店市| 江安县| 松桃| 平泉县| 巨鹿县| 田林县| 西华县| 高青县| 沙田区| 玛曲县| 开江县| 昌图县| 宁南县| 宁波市| 安康市| 武宣县| 天镇县| 乐昌市| 丰镇市| 延津县| 许昌县| 贡觉县| 读书| 茶陵县| 木里| 富裕县| 东平县|