用现实生活示例在打字稿中创建可重复使用的基本类
本文深入研究了在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)

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...
