本文深入研究了在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中文网其他相关文章!

具有CSS的自定义光标很棒,但是我们可以将JavaScript提升到一个新的水平。使用JavaScript,我们可以在光标状态之间过渡,将动态文本放置在光标中,应用复杂的动画并应用过滤器。

互动CSS动画和元素相互启动的元素在2025年似乎更合理。虽然不需要在CSS中实施乒乓球,但CSS的灵活性和力量的增加,可以怀疑Lee&Aver Lee&Aver Lee有一天将是一场

有关利用CSS背景滤波器属性来样式用户界面的提示和技巧。您将学习如何在多个元素之间进行背景过滤器,并将它们与其他CSS图形效果集成在一起以创建精心设计的设计。

好吧,事实证明,SVG的内置动画功能从未按计划进行弃用。当然,CSS和JavaScript具有承载负载的能力,但是很高兴知道Smil并没有像以前那样死在水中

是的,让#039;跳上文字包装:Safari Technology Preview In Pretty Landing!但是请注意,它与在铬浏览器中的工作方式不同。

此CSS-tricks更新了,重点介绍了年鉴,最近的播客出现,新的CSS计数器指南以及增加了几位新作者,这些新作者贡献了有价值的内容。

在大多数情况下,人们展示了@Apply的@Apply功能,其中包括Tailwind的单个property实用程序之一(会改变单个CSS声明)。当以这种方式展示时,@Apply听起来似乎很有希望。如此明显


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

记事本++7.3.1
好用且免费的代码编辑器

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

Dreamweaver Mac版
视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。