用現實生活示例在打字稿中創建可重複使用的基本類
本文深入研究了在Typescript中創建可重複使用的基本類,並在先前有關打字稿轉換的文章上擴展。雖然這篇文章獨自一人,但鏈接的帖子為代碼庫重寫和單元測試提供了寶貴的見解。
Johnny-Five是一個用於node.js的物聯網和機器人庫,使用類似jQuery的方法簡化了硬件交互:在平台之間進行差異並提供更高級別的抽象。它通過IO插件支持各種平台,包括Arduino,Tessel和Raspberry Pi。 Raspi IO是支持Raspberry Pi的插件,在打字稿中重寫,導致創建可重複使用的基類。
設計可重複使用的基類
對於那些不熟悉基於類的繼承的人,基類提供了子類可以擴展的共同結構和功能。考慮這個簡化的打字稿示例:
抽像類汽車{ 私人_speed:number = 0; 私人_Direction:number = 0; 公共驅動器(速度:數字):void { this._speed = speed; } 公共轉彎(方向:編號):void { 如果(方向> 90 ||方向<p>該<code>Automobile</code>基類擴展以創建<code>Sedan</code>類。兩個類中的所有方法均可訪問。同樣,為Johnny-Five的IO插件創建了一個<code>AbstractIO</code> Base類。</p><h3 id="實施抽象">實施抽象</h3><p><code>AbstractIO</code>是一個NPM軟件包,可提供符合打字稿和JavaScript最佳實踐的基類。讓我們檢查<code>MODES</code>屬性和<code>digitalWrite</code>方法:</p><p> <code>MODES</code>屬性是對象映射模式名稱(輸入,輸出等)到數值常數。在打字稿中,枚舉是理想的,但是JavaScript缺乏此功能。解決方案?在內部使用打字稿枚舉,映射到外部為JavaScript對象:</p><pre class="brush:php;toolbar:false">導出枚舉模式{ 輸入= 0, 輸出= 1, 模擬= 2, PWM = 3, 伺服= 4, 步進= 5, 未知= 99 } 公共獲取模式(){ 返回 { 輸入:模式。輸入, 輸出:模式。輸出, 模擬:模式。 pwm:mode.pwm, 伺服:模式。 未知:模式 }; }
對於需要子類替代的方法(例如digitalWrite
),採用了JavaScript方法:在基類中丟下錯誤:
public DigitalWrite(PIN:String |數字,值:數字):void { 投擲新錯誤(`digitalwrite不受$ {this.name}`)的支持。 }
儘管Typescript缺乏有關未經忽略的方法的警告,但這在Typescript和JavaScript中都起作用。
關鍵的學習
為打字稿和JavaScript設計設計的過程突出了以下要點:
- 優先考慮共同的最佳實踐。
- 如果發生衝突,請在內部使用打字稿的最佳實踐,然後將其映射到外部的JavaScript。
- 如果兩者都沒有起作用,則默認為JavaScript最佳實踐。
事實證明,抽像類在JavaScript中有用,而在跨模塊中打字的鴨子構成了維護挑戰。圖書館消費者的迭代反饋對於成功設計至關重要。
結論
為Typescript和JavaScript用戶創建基礎類是可以實現的,儘管某些妥協是必要的。 AbstractIO
成功地為兩個社區服務,表明可以達到平衡。
以上是用現實生活示例在打字稿中創建可重複使用的基本類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)