一 我要漲知識 —— TypeScript 常見面試題( 三 )

interface 能夠聲明合并
interface User {name: stringage: number}interface User {sex: string}/*User 接口為 {name: stringage: numbersex: string}*/一般來說 , 如果不清楚什么時候用interface/type,能用 interface 實現 , 就用 interface , 如果不能就用 type。
8、TypeScript 的主要特點是什么?

  • 跨平臺:TypeScript 編譯器可以安裝在任何操作系統上,包括 Windows、macOS 和 Linux 。
  • ES6 特性:TypeScript 包含計劃中的 ECMAScript 2015 (ES6) 的大部分特性,例如箭頭函數 。
  • 面向對象的語言:TypeScript 提供所有標準的 OOP 功能,如類、接口和模塊 。
  • 靜態類型檢查:TypeScript 使用靜態類型并幫助在編譯時進行類型檢查 。因此,你可以在編寫代碼時發現編譯時錯誤,而無需運行腳本 。
  • 可選的靜態類型:如果你習慣了 JavaScript 的動態類型,TypeScript 還允許可選的靜態類型 。
  • DOM 操作:您可以使用 TypeScript 來操作 DOM 以添加或刪除客戶端網頁元素 。
9、TypeScript 中 never 和 void 的區別
  • void 表示沒有任何類型(可以被賦值為 null 和 undefined) 。
  • never 表示一個不包含值的類型,即表示永遠不存在的值 。
  • 擁有 void 返回值類型的函數能正常運行 。擁有 never 返回值類型的函數無法正常返回,無法終止,或會拋出異常 。
10、說一說 TypeScript 中的類及其特性 。TypeScript 引入了類,以便它們可以利用諸如封裝和抽象之類的面向對象技術的好處 。
TypeScript 編譯器將 TypeScript 中的類編譯為普通的 JavaScript 函數,以跨平臺和瀏覽器工作 。
一個類包括以下內容:
  • 構造器(Constructor)
  • 屬性(Properties)
  • 方法(Methods)
class Employee {empID: number;empName: string;constructor(ID: number, name: string) {this.empName = name;this.empID = ID;}getSalary(): number {return 40000;}}類的其他特性有:
  • 繼承(Inheritance)
  • 封裝(Encapsulation)
  • 多態(Polymorphism)
  • 抽象(Abstraction)
11、TypeScript 中的類型斷言是什么?TypeScript 中的類型斷言的工作方式類似于其他語言中的類型轉換,但沒有 C# 和 Java 等語言中可能的類型檢查或數據重組 。類型斷言對運行時沒有影響 , 僅由編譯器使用 。
類型斷言本質上是類型轉換的軟版本,它建議編譯器將變量視為某種類型 , 但如果它處于不同的形式,則不會強制它進入該模型 。
12、TypeScript 中的模塊是什么?TypeScript 中的模塊是相關變量、函數、類和接口的集合 。你可以將模塊視為包含執行任務所需的一切的容器 ??梢詫肽K以輕松地在項目之間共享代碼 。
module module_name{class xyz{export sum(x, y){return x+y;}}}13、解釋如何使用 TypeScript 中的 mixin 。Mixin 本質上是在相反方向上工作的繼承 。Mixins 允許你通過組合以前類中更簡單的部分類設置來構建新類 。
相反 , 類A繼承類B來獲得它的功能,類B從類A需要返回一個新類的附加功能 。
14、TypeScript 中什么是裝飾器,它們可以應用于什么?裝飾器是一種特殊的聲明 , 它允許你通過使用@注釋標記來一次性修改類或類成員 。每個裝飾器都必須引用一個將在運行時評估的函數 。
例如,裝飾器@sealed將對應于sealed函數 。任何標有 的@sealed都將用于評估sealed函數 。
function sealed(target) {// do something with 'target' ...}它們可以附加到:
  • 類聲明
  • 方法
  • 配件
  • 特性
  • 參數
注意:默認情況下不啟用裝飾器 。要啟用它們,你必須experimentalDecorators從tsconfig.json文件或命令行編輯編譯器選項中的字段 。
15、使用 ts 實現一個判斷入參是否是數組類型的方法?unknown 用于變量類型不確定,但肯定可以確定的情形下 , 比如下面這個示例中,入參總歸會有個值,根據這個值的類型進行不同的處理 , 這里使用 unknown 替代 any 則會更加類型安全 。
function isArray(x: unknown): boolean {if (Array.isArray(x)) {return true;}return false;}【一 我要漲知識 —— TypeScript 常見面試題】

推薦閱讀