TypeScript開發環境的搭建詳解

TypeScript開發環境的搭建詳解

TypeScript  由微軟開發的開源免費的編程語言,是JavaScript語言的一個超集,本質上爲JavaScript語言添加了可選的靜態類型和基於類的面向對象編程概念。TypeScript的作者是大名鼎鼎的Anders Hejlsberg,是Delphi和C#之父。

TypeScript英文官網

https://www.typescriptlang.org/

TypeScript中文網

https://www.tslang.cn/

 

typescript 是 javascript 的當前最受歡迎的中間語言,提供了強大靈活的類型系統,typescript 提供一個編譯器 tsc 可以將 typescript 編寫的代碼編譯成 javascript。除了 typescript,你可能還聽過 coffescript, flow, dart 等 javascript 的中間語言。

 

TypeScript開發環境的搭建

本文介紹兩種TypeScript開發環境的搭建:一是TypeScript命令行開發環境的搭建 ;二是使用VSCode搭建TypeScript開發環境

 

一、TypeScript命令行開發環境的搭建

命令行的TypeScript編譯器可以使用Node.js之npm工具來安裝。

在命令行窗口中分別輸入node -v 和 npm -v,查看版本信息,驗證是否安裝。

【Node.JS官網https://nodejs.org/en/ ,Node.js默認就帶有npm工具。下載安裝,選擇好安裝路徑,一路回車安裝即可(需要提醒的是:若不想安裝大量的工具,不要點選“automatically install the necessary tools. Note that this will also install chocolatey. The script will pop_up in a new window after the installation completes.“ 意思是:自動安裝必要的工具。注意,這也會安裝chocolatey。安裝完成後,腳本將彈出一個新窗口)。

查看本地下載的包版本信息

npm ls 名字 -g

其中-g查看全局的模塊和包信息,去掉查看本地的】

 

安裝TypeScript編譯工具

使用npm安裝TypeScript,在命令行窗口中輸入

npm install -g typescript

全局安裝TypeScript。參見下圖:

 

安裝完成後,可以輸入

tsc -v

查看TypeScript編譯器的版本信息。參見下圖:

 

獲取幫助

tsc -h

 

將“ts文件(TypeScript文件)”文件編譯爲“js文件”

tsc [--outDir 輸出js文件的路徑] ts文件

其中:[ ]表示可選,若不用--outDir <輸出js文件的路徑>,表示編譯產生的“js文件”存放在”ts文件”的路徑中。

<ts文件>,可帶路徑

ypeScript 轉換爲 JavaScript 過程如下圖:

 

 

新建一個TypeScript文件(ts文件),內容如下:

function say(msg:string) {

    return "Hello, " + msg;

}

 

let str = "TypeScript";

console.log(say(str));

 

保存到D:\TypeScriptDemo,文件名爲demoA.ts參見下圖:

 

在命令行窗口中,使用tsc命令編譯

tsc  --outDir D:\TypeScriptDemo D:\TypeScriptDemo\demoA.ts

tsc D:\TypeScriptDemo\demoA.ts

 

可以使用Node.js對生成的JavaScript文件進行執行

node D:\TypeScriptDemo\demoA.js

 

TypeScript語法特點

TypeScript 區分大寫和小寫字符。

每行指令都是一段語句,你可以使用分號或不使用, 分號在 TypeScript 中是可選的,建議使用。

TypeScript 支持兩種類型的註釋:單行註釋 ( // ) 多行註釋 (/* */)

 

二、使用VSCode搭建TypeScript開發環境

先從VSCode官網(https://code.visualstudio.com)下載當前穩定(stable)版本安裝

安裝很簡單,選擇好安裝路徑,一路回車安裝即可。

安裝完成後,打開 Visual Studio Code 界面類似如下:

 

創建目錄d:\TypeScriptDemo2

使用VSCode選擇該目錄:菜單File—>Open Folder打開d:\TypeScriptDemo2,參見下圖

此時,在EXPLORER欄出現TYPESCRIPTDEMO2(字符變爲大寫)

再點擊菜單 Terminal(終端) —>New Terminal(新建終端),輸入 tsc --init回車(即按下Enter鍵),參見下圖:

創建出的tsconfig.json文件,將顯示在EXPLORER欄。

注、若提示:

tsc : 無法加載文件 C:\Users\Wang\AppData\Roaming\npm\tsc.ps1,因爲在此係統上禁止運行腳本。有關詳細信息,請參閱 https:/go.microsof

t.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

應對處理:

以管理員身份 打開windows powershell

輸入set-ExecutionPolicy RemoteSigned   選擇 A 或者 Y

再輸入 tsc --init回車即可】

 

tsconfig.json文件

這是TypeScript的配置文件,有幾個重要的屬性需要解釋一下:

target:編譯之後生成的JavaScript文件需要遵循的標準。有三個候選項:es3、es5、es2015。

noImplicitAny:爲false時,如果編譯器無法根據變量的使用來判斷類型時,將用any類型代替。爲true時,將進行強類型檢查,無法推斷類型時,提示錯誤。

module:遵循的JavaScript模塊規範。主要的候選項有:commonjs、AMD和es2015。爲了後面與node.js保持一致,我們這裏選用commonjs。

removeComments:編譯生成的JavaScript文件是否移除註釋。

sourceMap:編譯時是否生成對應的source map文件。這個文件主要用於前端調試。當前端js文件被壓縮引用後,出錯時可藉助同名的source map文件查找源文件中錯誤位置。

outDir:編譯輸出JavaScript文件存放的文件夾。

include、exclude:編譯時需要包含/剔除的文件夾。

 

可以根據實際需要,修改tsconfig.json文件

在EXPLORER欄,點擊tsconfig.json文件,我們在此啓用sourceMap和outDir的設置,即去掉這兩項前面的//,並將"outDir": "./"改爲"outDir": "./js",參見下圖:

 

 

編寫TypeScript文件

使用菜單File—>New File,輸入如下代碼:

function say(msg:string) {

    return "Hello, " + msg;

}

 

let str = "TypeScript";

console.log(say(str));

 

使用菜單File—>Save 保存文件名爲sampleA.ts

 

編譯

點擊菜單 Terminal(終端) —>Run Build Task(運行生成任務),在列表中選擇tsc:Watch(監視) - tsconfig.json,啓動編譯

編譯成功,將生成js目錄以及對應ts文件的js文件,並出現在在EXPLORER欄中:

 

運行

點擊菜單 Terminal(終端) —>New Terminal(新建終端),輸入

node D:\TypeScriptDemo2\js\sampleA.js 或node js\sampleA.js回車(即按下Enter鍵),參見下圖:

 

還可以使用瀏覽器運行

這需要先在VSCode中建立html文件,在其中將sampleA.js嵌入:

<!DOCTYPE html>

<head>

    <title>TypeScript使用示例</title>

</head>

<body>

    <script src="js/sampleA.js"></script>

</body>

</html>

 

保存爲testA.html

在HTML文件中右鍵找到Open In Other Browser,打開相應的瀏覽器。在瀏覽器的控制檯看到執行結果。參見下圖:

 

 

、若在HTML文件中右鍵找不到Open In Other Browser,需要在VSCode中安裝open in browser這個插件。

在VSCode中安裝open in browser這個插件,參見下圖:

 

最後再給出一個例子

Typescript源碼

class Greeter {

    greeting: string;

    constructor(message: string) {

        this.greeting = message;

    }

    greet() {

        return "Hello, " + this.greeting;

    }

}

 

let greeter = new Greeter("world");

 

let button = document.createElement('button');

button.textContent = "Say Hello";

button.onclick = function() {

    alert(greeter.greet());

}

 

document.body.appendChild(button);

 

保存爲ts_2.ts

 

html文件:

<!DOCTYPE html>

<head>

  <meta charset="UTF-8">

 

  <title> TypeScript使用示例2</title>

 

</head>

<body>

  <script src="js/ts_2.js"></script>

</body>

</html>

 

保存爲test2.html

 

編譯運行過程參見前面,運行結果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章