TypeScript 基礎(chǔ)語(yǔ)法
TypeScript 程序由以下幾個(gè)部分組成:
- 模塊
- 函數(shù)
- 變量
- 語(yǔ)句和表達(dá)式
- 注釋
1. 第一個(gè) TypeScript 程序
我們可以使用以下 TypeScript 程序來(lái)輸出 "Hello World" :
const hello : string = "Hello World!" console.log(hello)
以上代碼存放到 yapf.ts 文件中,首先通過(guò) tsc 命令編譯:
tsc yapf.ts
得到 js 代碼文件 yapf.js:
var hello = "Hello World!"; console.log(hello);
最后我們使用 node 命令來(lái)執(zhí)行該 js 代碼。
$ node Runoob.js Hello World
整個(gè)流程如下圖所示:
我們可以同時(shí)編譯多個(gè) ts 文件:
tsc file1.ts file2.ts file3.ts
tsc 常用編譯參數(shù)如下表所示:
序號(hào) | 編譯參數(shù)說(shuō)明 |
---|---|
1. |
--help 顯示幫助信息 |
2. |
--module 載入擴(kuò)展模塊 |
3. |
--target 設(shè)置 ECMA 版本 |
4. |
--declaration 額外生成一個(gè) .d.ts 擴(kuò)展名的文件。 tsc ts-hw.ts --declaration 以上命令會(huì)生成 ts-hw.d.ts、ts-hw.js 兩個(gè)文件。 |
5. |
--removeComments 刪除文件的注釋 |
6. |
--out 編譯多個(gè)文件并合并到一個(gè)輸出的文件 |
7. |
--sourcemap 生成一個(gè) sourcemap (.map) 文件。 sourcemap 是一個(gè)存儲(chǔ)源代碼與編譯代碼對(duì)應(yīng)位置映射的信息文件。 |
8. |
--module noImplicitAny 在表達(dá)式和聲明上有隱含的 any 類型時(shí)報(bào)錯(cuò) |
9. |
--watch 在監(jiān)視模式下運(yùn)行編譯器。會(huì)監(jiān)視輸出文件,在它們改變時(shí)重新編譯。 |
2. TypeScript 保留關(guān)鍵字
TypeScript 保留關(guān)鍵字如下表所示:
break | as | catch | switch |
case | if | throw | else |
var | number | string | get |
module | type | instanceof | typeof |
public | private | enum | export |
finally | for | while | void |
null | super | this | new |
in | return | true | false |
any | extends | static | let |
package | implements | interface | function |
new | try | yield | const |
continue | do |
1)空白和換行
TypeScript 會(huì)忽略程序中出現(xiàn)的空格、制表符和換行符。
空格、制表符通常用來(lái)縮進(jìn)代碼,使代碼易于閱讀和理解。
2) TypeScript 區(qū)分大小寫(xiě)
TypeScript 區(qū)分大寫(xiě)和小寫(xiě)字符。
3) 分號(hào)是可選的
每行指令都是一段語(yǔ)句,你可以使用分號(hào)或不使用, 分號(hào)在 TypeScript 中是可選的,建議使用。
以下代碼都是合法的:
console.log("Codebaoku") console.log("Google");
如果語(yǔ)句寫(xiě)在同一行則一定需要使用分號(hào)來(lái)分隔,否則會(huì)報(bào)錯(cuò),如:
console.log("Codeboku");console.log("Google");
4) TypeScript 注釋
注釋是一個(gè)良好的習(xí)慣,雖然很多程序員討厭注釋,但還是建議你在每段代碼寫(xiě)上文字說(shuō)明。
注釋可以提高程序的可讀性。
注釋可以包含有關(guān)程序一些信息,如代碼的作者,有關(guān)函數(shù)的說(shuō)明等。
編譯器會(huì)忽略注釋。
5) TypeScript 支持兩種類型的注釋
- 單行注釋 ( // ) ? 在 // 后面的文字都是注釋內(nèi)容。
- 多行注釋 (/* */) ? 這種注釋可以跨越多行。
注釋范例:
// 這是一個(gè)單行注釋 /* 這是一個(gè)多行注釋 這是一個(gè)多行注釋 這是一個(gè)多行注釋 */
2. TypeScript 與面向?qū)ο?/h2>
面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法。
TypeScript 是一種面向?qū)ο蟮木幊陶Z(yǔ)言。
面向?qū)ο笾饕袃蓚€(gè)概念:對(duì)象和類。
- 對(duì)象:對(duì)象是類的一個(gè)范例(對(duì)象不是找個(gè)女朋友),有狀態(tài)和行為。例如,一條狗是一個(gè)對(duì)象,它的狀態(tài)有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
- 類:類是一個(gè)模板,它描述一類對(duì)象的行為和狀態(tài)。
- 方法:方法是類的操作的實(shí)現(xiàn)步驟。
下圖中 girl、boy 為類,而具體的每個(gè)人為該類的對(duì)象:
TypeScript 面向?qū)ο缶幊谭独?/p>
class Site { name():void { console.log("Codebaoku") } } var obj = new Site(); obj.name();
以上范例定義了一個(gè)類 Site,該類有一個(gè)方法 name(),該方法在終端上輸出字符串 Codebaoku。
new 關(guān)鍵字創(chuàng)建類的對(duì)象,該對(duì)象調(diào)用方法 name()。
編譯后生成的 JavaScript 代碼如下:
var Site = /** @class */ (function () { function Site() { } Site.prototype.name = function () { console.log("Codebaoku"); }; return Site; }()); var obj = new Site(); obj.name();
執(zhí)行以上 JavaScript 代碼,輸出結(jié)果如下:
Codebaoku
- JavaScript如何去掉末尾的分隔符
- 如何導(dǎo)入javaScript文件
- javascript報(bào)錯(cuò)如何調(diào)試
- JavaScript工程url無(wú)法使用如何解決
- JavaScript農(nóng)陽(yáng)歷轉(zhuǎn)換的方法是什么
- javascript如何輸出當(dāng)前時(shí)間
- 如何用JavaScript在Vue3中實(shí)現(xiàn)動(dòng)畫(huà)
- javascript怎么實(shí)現(xiàn)遠(yuǎn)程通信
- JavaScript怎么自定義函數(shù)求累加
- 怎么開(kāi)發(fā)javascript錯(cuò)誤上報(bào)工具
- javascript怎么發(fā)送ajax請(qǐng)求參數(shù)
- TypeScript 教程
- TypeScript 安裝
- TypeScript 運(yùn)算符
- TypeScript 循環(huán)
- TypeScript Number
- TypeScript String 字符串
- TypeScript 聯(lián)合類型
- TypeScript 命名空間
- TypeScript 聲明文件