語法定義了一組用于編寫程序的規(guī)則。每一種語言規(guī)范定義了它自己的語法。一個TypeScript程序是由以下幾個部分組成:
讓我們先從傳統(tǒng)的“Hello World”的例子開始:
var message:string = "Hello World" console.log(message)
在編譯時,它會生成以下JavaScript代碼:
//Generated by typescript 1.8.10 var message = "Hello World"; console.log(message);
第1行聲明的名稱message來聲明變量。變量是一種在程序中存儲值的機制。
第2行將變量的值打印到提示符。在這里,控制臺是指終端窗口。函數(shù)log ()是用來在屏幕上顯示文本。
讓我們來看看如何使用Visual Studio Code編譯和執(zhí)行TypeScript程序。按照下面的步驟:
第1步 - 使用.ts擴展名保存文件。我們將文件保存為Test.ts。代碼編輯器會在您保存代碼時標記代碼中的錯誤(如果有的話)。
第2步 - 右鍵單擊VS Code的瀏覽窗格中的“工作文件”選項下的TypeScript文件。選擇“在命令提示符下打開”選項。
第3步 - 要編譯文件,請在終端窗口中使用下面的命令:
tsc Test.ts
步驟4 - 該文件被編譯為Test.js。要運行寫入的程序,請在終端中輸入以下內容:
node Test.js
編譯標志讓你可以在編譯過程中更改編譯器的行為。每一個編譯器標志都公開一個允許您更改編譯器行為方式的設置。
下表列出了與TSC編譯器相關的一些常見的標志。一個典型的命令行用法使用部分或全部開關。
序號 | 編譯器標志和說明 |
---|---|
1 | --help 顯示幫助手冊 |
2 | --module 加載外部模塊 |
3 | --target 設置目標ECMA版本 |
4 | --declaration 生成額外的.d.ts文件 |
5 | --removeComments 移除輸出文件中所有注釋 |
6 | --out 將多個文件編譯為單個輸出文件 |
7 | --sourcemap 生成sourcemap(.map)文件 |
8 | --module noImplicitAny 不允許編譯器推論任何類型 |
9 | --watch 觀察文件的更改并動態(tài)重新編譯它們 |
注意:多個文件可以同時被編譯。
tsc file1.ts, file2.ts, file3.ts
標識符是給予程序中元素的名稱,如變量,函數(shù)等。標識符的規(guī)則如下:
標識符可以包括字符和數(shù)字。但是,標識符不能以數(shù)字開頭。
除了下劃線(_)或美元符號($)外,標識符不能包含特殊符號。
標識符不能是關鍵字。
標識符必須是唯一的。
標識符是區(qū)分大小寫的。
標識符不能包含空格。
下表中列出了有效和無效的標識符的一些例子:
有效的標識符 | 無效的標識符 |
---|---|
firstName | Var |
first_name | first name |
num1 | first-name |
$result | 1number |
關鍵字在語言的上下文中具有特殊含義。下表列出了TypeScript中的一些關鍵字:
break | as | any | 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 | catch |
TypeScript忽略程序中出現(xiàn)的空格,制表符和換行符。你可以在程序中自由使用空格,制表符,換行符,并且可以自由地以簡潔一致的方式格式化和縮進程序,使代碼易于閱讀和理解。
TypeScript對大小寫敏感,這意味著,TypeScript區(qū)分大寫和小寫字符。
每行指令都稱為語句。分號在TypeScript中是可選的。
示例
console.log("hello world") console.log("We are learning TypeScript")
單行可以包含多個語句。然而,這些語句必須用分號隔開。
注釋是提高程序可讀性的方法。注釋可用于包含有關程序的其他信息,如代碼的作者,有關函數(shù)/構造的提示等。編譯器會忽略注釋。
TypeScript支持以下類型的注釋:
單行注釋(//) - // 和行尾之間的任何文本都視為注釋
多行注釋(/ * * /) - 這些注釋可能跨越多行。
示例
//this is single line comment /* This is a Multi-line comment */
TypeScript是面向對象的JavaScript。面向對象是一種遵循真實世界建模的軟件開發(fā)范例。面向對象將程序視為通過稱為方法的機制相互通信的對象集合。TypeScript支持這些面向對象的組件。
Object(對象) - 一個對象是任何實體的實時表示。根據(jù)Grady Brooch的說法,每個對象必須有三個特征:
State(狀態(tài)) - 由對象的屬性描述
Behavior(行為) - 描述對象的行為方式
Identity(標識) - 將對象與一組類似此類對象區(qū)分開的唯一值。
Class(類) - OOP方面的類是創(chuàng)建對象的藍圖。 類封裝了對象的數(shù)據(jù)。
Method(方法) - 方法促進對象之間的通信。
例如:
class Greeting { greet():void { console.log("Hello World!!!") } } var obj = new Greeting(); obj.greet();
上面的示例定義了一個類Greeting。這個類有一個方法greet()。該方法在終端上打印字符串“Hello World”。new關鍵字創(chuàng)建類(obj)的對象。該對象調用方法greet()。
在編譯時,它會生成以下JavaScript代碼:
//Generated by typescript 1.8.10 var Greeting = (function () { function Greeting() { } Greeting.prototype.greet = function () { console.log("Hello World!!!"); }; return Greeting; }()); var obj = new Greeting(); obj.greet()
上述程序的輸出如下:
Hello World!!!
更多建議: