国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
設(shè)計(jì)可重複使用的基類(lèi)
關(guān)鍵的學(xué)習(xí)
結(jié)論
首頁(yè) web前端 css教學(xué) 用現(xiàn)實(shí)生活示例在打字稿中創(chuàng)建可重複使用的基本類(lèi)

用現(xiàn)實(shí)生活示例在打字稿中創(chuàng)建可重複使用的基本類(lèi)

Apr 21, 2025 am 09:31 AM

用現(xiàn)實(shí)生活示例在打字稿中創(chuàng)建可重複使用的基本類(lèi)

本文深入研究了在Typescript中創(chuàng)建可重複使用的基本類(lèi),並在先前有關(guān)打字稿轉(zhuǎn)換的文章上擴(kuò)展。雖然這篇文章獨(dú)自一人,但鏈接的帖子為代碼庫(kù)重寫(xiě)和單元測(cè)試提供了寶貴的見(jiàn)解。

Johnny-Five是一個(gè)用於node.js的物聯(lián)網(wǎng)和機(jī)器人庫(kù),使用類(lèi)似jQuery的方法簡(jiǎn)化了硬件交互:在平臺(tái)之間進(jìn)行差異並提供更高級(jí)別的抽象。它通過(guò)IO插件支持各種平臺(tái),包括Arduino,Tessel和Raspberry Pi。 Raspi IO是支持Raspberry Pi的插件,在打字稿中重寫(xiě),導(dǎo)致創(chuàng)建可重複使用的基類(lèi)。

設(shè)計(jì)可重複使用的基類(lèi)

對(duì)於那些不熟悉基於類(lèi)的繼承的人,基類(lèi)提供了子類(lèi)可以擴(kuò)展的共同結(jié)構(gòu)和功能。考慮這個(gè)簡(jiǎn)化的打字稿示例:

抽像類(lèi)汽車(chē){
  私人_speed:number = 0;
  私人_Direction:number = 0;
  公共驅(qū)動(dòng)器(速度:數(shù)字):void {
    this._speed = speed;
  }

  公共轉(zhuǎn)彎(方向:編號(hào)):void {
    如果(方向> 90 ||方向<p>該<code>Automobile</code>基類(lèi)擴(kuò)展以創(chuàng)建<code>Sedan</code>類(lèi)。兩個(gè)類(lèi)中的所有方法均可訪問(wèn)。同樣,為Johnny-Five的IO插件創(chuàng)建了一個(gè)<code>AbstractIO</code> Base類(lèi)。</p><h3>實(shí)施抽象</h3><p><code>AbstractIO</code>是一個(gè)NPM軟件包,可提供符合打字稿和JavaScript最佳實(shí)踐的基類(lèi)。讓我們檢查<code>MODES</code>屬性和<code>digitalWrite</code>方法:</p><p> <code>MODES</code>屬性是對(duì)象映射模式名稱(chēng)(輸入,輸出等)到數(shù)值常數(shù)。在打字稿中,枚舉是理想的,但是JavaScript缺乏此功能。解決方案?在內(nèi)部使用打字稿枚舉,映射到外部為JavaScript對(duì)象:</p><pre class="brush:php;toolbar:false">導(dǎo)出枚舉模式{
  輸入= 0,
  輸出= 1,
  模擬= 2,
  PWM = 3,
  伺服= 4,
  步進(jìn)= 5,
  未知= 99
}

公共獲取模式(){
  返回 {
    輸入:模式。輸入,
    輸出:模式。輸出,
    模擬:模式。
    pwm:mode.pwm,
    伺服:模式。
    未知:模式
  };
}

對(duì)於需要子類(lèi)替代的方法(例如digitalWrite ),採(cǎi)用了JavaScript方法:在基類(lèi)中丟下錯(cuò)誤:

 public DigitalWrite(PIN:String |數(shù)字,值:數(shù)字):void {
  投擲新錯(cuò)誤(`digitalwrite不受$ {this.name}`)的支持。
}

儘管Typescript缺乏有關(guān)未經(jīng)忽略的方法的警告,但這在Typescript和JavaScript中都起作用。

關(guān)鍵的學(xué)習(xí)

為打字稿和JavaScript設(shè)計(jì)設(shè)計(jì)的過(guò)程突出了以下要點(diǎn):

  1. 優(yōu)先考慮共同的最佳實(shí)踐。
  2. 如果發(fā)生衝突,請(qǐng)?jiān)趦?nèi)部使用打字稿的最佳實(shí)踐,然後將其映射到外部的JavaScript。
  3. 如果兩者都沒(méi)有起作用,則默認(rèn)為JavaScript最佳實(shí)踐。

事實(shí)證明,抽像類(lèi)在JavaScript中有用,而在跨模塊中打字的鴨子構(gòu)成了維護(hù)挑戰(zhàn)。圖書(shū)館消費(fèi)者的迭代反饋對(duì)於成功設(shè)計(jì)至關(guān)重要。

結(jié)論

為T(mén)ypescript和JavaScript用戶創(chuàng)建基礎(chǔ)類(lèi)是可以實(shí)現(xiàn)的,儘管某些妥協(xié)是必要的。 AbstractIO成功地為兩個(gè)社區(qū)服務(wù),表明可以達(dá)到平衡。

以上是用現(xiàn)實(shí)生活示例在打字稿中創(chuàng)建可重複使用的基本類(lèi)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

什麼是AutoPrefixer,它如何工作? 什麼是AutoPrefixer,它如何工作? Jul 02, 2025 am 01:15 AM

Autoprefixer是一個(gè)根據(jù)目標(biāo)瀏覽器範(fàn)圍自動(dòng)為CSS屬性添加廠商前綴的工具。 1.它解決了手動(dòng)維護(hù)前綴易出錯(cuò)的問(wèn)題;2.通過(guò)PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項(xiàng)有不手動(dòng)加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

CSS教程,用於創(chuàng)建粘性標(biāo)頭或頁(yè)腳 CSS教程,用於創(chuàng)建粘性標(biāo)頭或頁(yè)腳 Jul 02, 2025 am 01:04 AM

TocreatestickyheadersandfooterswithCSS,useposition:stickyforheaderswithtopvalueandz-index,ensuringparentcontainersdon’trestrictit.1.Forstickyheaders:setposition:sticky,top:0,z-index,andbackgroundcolor.2.Forstickyfooters,betteruseposition:fixedwithbot

什麼是圓錐級(jí)函數(shù)? 什麼是圓錐級(jí)函數(shù)? Jul 01, 2025 am 01:16 AM

theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

CSS教程,用於創(chuàng)建加載旋轉(zhuǎn)器和動(dòng)畫(huà) CSS教程,用於創(chuàng)建加載旋轉(zhuǎn)器和動(dòng)畫(huà) Jul 07, 2025 am 12:07 AM

創(chuàng)建CSS加載旋轉(zhuǎn)器的方法有三種:1.使用邊框的基本旋轉(zhuǎn)器,通過(guò)HTML和CSS實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫(huà);2.使用多個(gè)點(diǎn)的自定義旋轉(zhuǎn)器,通過(guò)不同延遲時(shí)間實(shí)現(xiàn)跳動(dòng)效果;3.在按鈕中添加旋轉(zhuǎn)器,通過(guò)JavaScript切換類(lèi)來(lái)顯示加載狀態(tài)。每種方法都強(qiáng)調(diào)了設(shè)計(jì)細(xì)節(jié)如顏色、大小、可訪問(wèn)性和性能優(yōu)化的重要性,以提升用戶體驗(yàn)。

CSS教程專(zhuān)注於移動(dòng)優(yōu)先設(shè)計(jì) CSS教程專(zhuān)注於移動(dòng)優(yōu)先設(shè)計(jì) Jul 02, 2025 am 12:52 AM

Mobile-firstCSSdesignrequiressettingtheviewportmetatag,usingrelativeunits,stylingfromsmallscreensup,optimizingtypographyandtouchtargets.First,addtocontrolscaling.Second,use%,em,orreminsteadofpixelsforflexiblelayouts.Third,writebasestylesformobile,the

如何將整個(gè)網(wǎng)格集中在視口中? 如何將整個(gè)網(wǎng)格集中在視口中? Jul 02, 2025 am 12:53 AM

要讓整個(gè)網(wǎng)格佈局在視口中居中顯示,可通過(guò)以下方法實(shí)現(xiàn):1.使用margin:0auto實(shí)現(xiàn)水平居中,需設(shè)定容器固定寬度,適用於固定佈局;2.利用Flexbox在外層容器設(shè)置justify-content和align-items屬性,結(jié)合min-height:100vh可實(shí)現(xiàn)垂直和水平居中,適合全屏展示場(chǎng)景;3.直接使用CSSGrid的place-items屬性在父容器上快速居中,簡(jiǎn)潔且現(xiàn)代瀏覽器支持良好,同時(shí)需確保父容器有足夠高度。每種方式均有適用場(chǎng)景和限制,根據(jù)實(shí)際需求選擇合適的方案即可。

如何創(chuàng)建本質(zhì)上響應(yīng)的網(wǎng)格佈局? 如何創(chuàng)建本質(zhì)上響應(yīng)的網(wǎng)格佈局? Jul 02, 2025 am 01:19 AM

要?jiǎng)?chuàng)建內(nèi)在響應(yīng)式網(wǎng)格佈局,核心方法是使用CSSGrid的repeat(auto-fit,minmax())模式;1.設(shè)置grid-template-columns:repeat(auto-fit,minmax(200px,1fr))讓瀏覽器自動(dòng)調(diào)整列數(shù)並限制每列最小和最大寬度;2.使用gap控制格子間距;3.容器應(yīng)設(shè)為相對(duì)單位如width:100%、配合box-sizing:border-box避免寬度計(jì)算錯(cuò)誤並用margin:auto居中;4.可選設(shè)置行高與內(nèi)容對(duì)齊方式提升視覺(jué)一致性,如row

CSS中使用@supports的功能檢測(cè)是什麼? CSS中使用@supports的功能檢測(cè)是什麼? Jul 02, 2025 am 01:14 AM

prainuredetectionIncsssusissuse@supportScheckSifabRowsEsuppecifortSupecifortEfeatureBeforeApplyingReplyingStyles.1.itusesconditionalcsssssbasssbasedonproperty-valueperty-valuepairs,suessas@supports@supports@supports@supports(display:grid)

See all articles