TypeScript作為前端開發你必須學習的技能(一)


2019年,TypeScript已經開始漸漸的嶄露頭角,各大框架都說要使用TypeScript,雖然現在還沒有完美,但是TypeScript很有可能會成為下一個主流技術。

廢話就不多說了,直接開始吧。

 首先了解TypeScript

  TypeScript 是 JavaScript 的一個超集,支持 ECMAScript 6 標准。

  TypeScript 由微軟開發的自由和開源的編程語言。

  TypeScript 設計目標是開發大型應用,它可以編譯成純 JavaScript,編譯出來的 JavaScript 可以運行在任何瀏覽器上。

語言特性

TypeScript 是一種給 JavaScript 添加特性的語言擴展。增加的功能包括:

  • 類型批注和編譯時類型檢查
  • 類型推斷
  • 類型擦除
  • 接口
  • 枚舉
  • Mixin
  • 泛型編程
  • 名字空間
  • 元組
  • Await

以下功能是從 ECMA 2015 反向移植而來:

  • 模塊
  • lambda 函數的箭頭語法
  • 可選參數以及默認參數

JavaScript 與 TypeScript 的區別

  TypeScript 是 JavaScript 的超集,擴展了 JavaScript 的語法,因此現有的 JavaScript 代碼可與 TypeScript 一起工作無需任何修改,TypeScript 通過類型注解提供編譯時的靜態類型檢查。

  TypeScript 可處理已有的 JavaScript 代碼,並只對其中的 TypeScript 代碼進行編譯。

TypeScript 安裝

  如果已經安裝了node,並且已經配置的話,直接輸入下面的命令安裝就可以了,安裝的位置會在你配置的文件夾里面,如果沒有安裝node的話請參考我的《vue搭建環境》一文

  npm install -g typescript

  安裝完之后,查看版本號:
  tsc -v

  通常我們使用 .ts 作為 TypeScript 代碼文件的擴展名。

TypeScript編譯成JavaScript

  tsc xxx.ts

  編譯之后會在xxx.ts同文件夾下生成一個xxx.js文件,可以通過node依賴來運行,或直接當作普通js來使用

 

圖文實例:

  1.先創建一個后綴為ts的文件,這里為 test.ts

   

  2.使用命令行工具或git打開test.ts所在文件夾,輸入:tsc test.ts      注:(ts代表的是typeScript, c 代表的是編譯輸出)

  

   3.打開test.ts文件夾,就可以看到生成了一個名為test.js的文件

  

   4.通過node依賴,運行test.js,在命令行工具輸入:node test.js 就能運行輸出結果了,或者直接當成普通腳本在html代碼上引用輸出也行

  

 這樣你就創建了你的第一個TypeScript和進行了編譯了,下面繼續學習

TypeScript 基礎語法

 TypeScript的基礎語法不多,可以說學習起來會比學javascript快很多。

 TypeScript 程序由以下幾個部分組成:

  • 模塊
  • 函數
  • 變量
  • 語句和表達式
  • 注釋

  和javascript一樣,TypeScript也區分大小寫,也會忽略程序中出現的空格、制表符和換行符。空格、制表符通常用來縮進代碼,使代碼易於閱讀和理解。

TypeScript 與面向對象  

  TypeScript 是一種面向對象的編程語言。面向對象主要有兩個概念:對象和類。(具體概念和javascript差不多就不描述了)

  看實例更實際:

  

   

  

 

  編譯方法上面已經說過了,直接看效果

   

   實際上編譯成js之后的代碼是這樣的:

  

TypeScript 基礎類型

  TypeScript的基礎類型很神奇,它有一個類型叫任意類型 any  

  下面是它的數據類型:

    任意類型  關鍵字 any         類型描述:聲明為 any 的變量可以賦予任意類型的值。

    數字類型  關鍵字 number     類型描述:雙精度 64 位浮點值。它可以用來表示整數和分數。

      如:

        let binaryLiteral: number = 0b1010; // 二進制         let octalLiteral: number = 0o744; // 八進制         let decLiteral: number = 6; // 十進制         let hexLiteral: number = 0xf00d; // 十六進制

   
字符串類型   關鍵字 
string      類型描述:一個字符系列,使用單引號(')或雙引號(")來表示字符串類型。反引號(`)來定義多行文本和內嵌表達式。

      如:
        let name: string = "Runoob";         let years: number = 5;         let words: string = `您好,今年是 ${ name } 發布 ${ years + 1} 周年`;
   布爾類型   關鍵字 boolean      類型描述: 表示邏輯值:true 和 false。

      如:
        let flag: boolean = true;
   數組類型     關鍵字:無      類型描述:聲明變量為數組。

    如:
      // 在元素類型后面加上[]       let arr: number[] = [1, 2];       // 或者使用數組泛型       let arr: Array<number> = [1, 2];
   null      關鍵字:null 類型描述:表示對象值缺失。

    undefined  關鍵字:undefined  類型描述:用於初始化變量為一個未定義的值

   never     關鍵字:never    類型描述:never 是其它類型(包括 null 和 undefined)的子類型,代表從不會出現的值。

  

 

 

 

1.Any 類型
  任意值是 TypeScript 針對編程時類型不明確的變量使用的一種數據類型,它常用於以下三種情況。
    1.<p>1、變量的值會動態改變時,比如來自用戶的輸入,任意值類型可以讓這些變量跳過編譯階段的類型檢查,示例代碼如下:</p>       let x: any = 1; // 數字類型       x = 'I am who I am'; // 字符串類型       x = false; // 布爾類型

   2.改寫現有代碼時,任意值允許在編譯時可選擇地包含或移除類型檢查,示例代碼如下
      let x: any = 4;       x.ifItExists(); // 正確,ifItExists方法在運行時可能存在,但這里並不會檢查       x.toFixed(); // 正確
   3.定義存儲各種類型數據的數組時,示例代碼如下:
      let arrayList: any[] = [1, false, 'fine'];       arrayList[1] = 100;
2.never 類型
  never 是其它類型(包括 null 和 undefined)的子類型,代表從不會出現的值。
  這意味着聲明為 never 類型的變量只能被 never 類型所賦值,在函數中它通常表現為拋出異常或無法執行到終止點(例如無限循環),示例代碼如下:
  
    let x: never;     let y: number;     // 運行錯誤,數字類型不能轉為 never 類型     x = 123;     // 運行正確,never 類型可以賦值給 never類型     x = (()=>{ throw new Error('exception')})();     // 運行正確,never 類型可以賦值給 數字類型     y = (()=>{ throw new Error('exception')})();     // 返回值為 never 的函數可以是拋出異常的情況     function error(message: string): never {     throw new Error(message);     }     // 返回值為 never 的函數可以是無法被執行到的終止點的情況     function loop(): never {     while (true) {}     }






















  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM