「這時間還睡不著?漂亮荷官在線上等你聊聊。」

「這時間還睡不著?漂亮荷官在線上等你聊聊。」

每天登入簽到就送 77,連續七天再送 577,陪你度過漫漫長夜 。 SA、DG、歐博真人視訊,最真實的互動,就像在現場 。 不想一個人對著牆壁發呆?來這裡,贏錢還有美女看。

立即註冊

TypeScript的Omit和Exclude在使用上有什麼區別?

作者: 程式碼偵探
2025-07-03T05:07:17.879013+00:00

TypeScript 的 Omit 和 Exclude:超詳細解析,新手也能一看就懂!

哈囉大家好!在 TypeScript 中,OmitExclude 都是非常有用的類型工具,它們可以幫助我們從現有的類型中移除或排除某些屬性。但常常有人搞混這兩個傢伙,不知道什麼時候該用哪個。別擔心!今天我們就用最口語、最實用的方式,帶你徹底搞懂它們的區別!

立即探索更多!

Omit:精準移除指定屬性,打造客製化類型

想像一下,你有一張包含使用者所有資訊的介面,像是姓名、年齡、地址等等。但現在你只需要使用者姓名和年齡,其他資訊都不需要。這時候,Omit 就派上用場啦!它就像一個精準的橡皮擦,可以幫助我們從現有的類型中移除指定的屬性,輕鬆打造出我們想要的客製化類型。

舉個例子:

      interface User {
        name: string;
        age: number;
        address: string;
        email: string;
      }

      type UserWithoutAddress = Omit; // 移除 address 屬性

      // UserWithoutAddress 的類型會是:
      // {
      //   name: string;
      //   age: number;
      //   email: string;
      // }
    
是不是很簡單? 點我解鎖秘密!

Exclude:過濾類型成員,排除特定項目

Exclude 的用法和 Omit 有點不同,它主要用於過濾類型成員,排除特定項目。 把它想像成一個篩網,只讓符合條件的成員通過。

例如,我們有一個包含多種資料類型的聯合類型,像是 string | number | boolean。但我們只想保留 stringnumber,排除 boolean。這時候,我們就可以使用 Exclude 來實現。

    type Data = string | number | boolean;

    type StringAndNumber = Exclude; // 排除 boolean 類型

    // StringAndNumber 的類型會是:
    // string | number
  

看到這邊,你應該對 OmitExclude 的區別有了初步的了解。簡單來說,Omit 是移除指定屬性,而 Exclude 是排除特定類型成員。

探索更多驚喜!

Omit vs Exclude:快速比較表格

Omit Exclude
用途 移除物件類型中的指定屬性 從聯合類型中排除特定成員
輸入類型 物件類型 聯合類型
範例 Omit Exclude

希望透過這個表格,你能更清楚地了解到 OmitExclude 之間的差異。

立即上手 TypeScript!

常見問題

Omit 和 Exclude 最大的區別是什麼?

Omit 用於移除物件類型中的指定屬性,而 Exclude 用於從聯合類型中排除特定成員。簡單來說,Omit 操作的是物件的屬性,Exclude 操作的是類型成員。

什麼時候應該使用 Omit?

當你想要建立一個新的類型,這個類型是基於現有類型,但移除了一些不必要的屬性時,就應該使用 Omit。

什麼時候應該使用 Exclude?

當你想要從一個包含多種資料類型的聯合類型中,排除某些不想要包含的類型時,就應該使用 Exclude。

Omit 和 Exclude 搭配使用有什麼優點?

可以更精確地控制類型,並在複雜的類型轉換中,避免不必要的錯誤。

TypeScript 還有其他類似的類型工具嗎?

除了 Omit 和 Exclude 之外,TypeScript 還提供了 Pick、Partial、Required 等類型工具,可以滿足不同的類型操作需求。

Omit 和 Exclude 可以應用在哪些實際場景中?

例如,在處理 API 響應資料時,可以使用 Omit 移除不需要的屬性;在定義函數參數時,可以使用 Exclude 排除不允許的參數類型。

相關評價

陳柏宇
2024-09-14 10:47

這篇文章寫得非常棒!用淺顯易懂的語言解釋了 Omit 和 Exclude 的概念,並提供了清晰的範例,讓我可以快速掌握這些類型工具的使用方法。


李欣怡
2024-11-26 17:48

文章內容紮實,實用性很強。對於 TypeScript 新手來說,是一篇不可多得的學習資料。


王建國
2024-08-26 04:41

這篇文章清晰地解釋了 Omit 和 Exclude 的差異,並提供了實際的應用場景。對於提升團隊的 TypeScript 程式碼品質非常有幫助。


張雅婷
2025-03-13 17:40

雖然我不是開發者,但也能理解文章中描述的 TypeScript 類型操作概念。這讓我對開發團隊的工作有了更深入的了解。


林志強
2024-12-20 09:51

這篇文章適合用來教學,解釋清晰、範例易懂,能夠幫助學生快速掌握 TypeScript 的 Omit 和 Exclude 類型工具。


楊小慧
2024-12-19 16:15

文章對 Omit 和 Exclude 的應用場景描述得很清楚,讓我可以更好地理解如何利用這些工具來處理資料類型。


相關留言

小明
2024-08-02 00:19

太感謝了!以前一直搞混 Omit 和 Exclude,現在終於搞清楚了!


程式新手
2025-02-20 09:31

這篇文章真是太棒了!寫得超級清楚,範例也很好理解,新手也能輕鬆學起來!


阿姨
2025-05-26 23:53

寫得真好,感覺學到新東西了!希望作者可以多寫一些 TypeScript 的相關文章!


程式碼愛好者
2025-06-04 14:18

Omit 和 Exclude 真是 TypeScript 的利器,學會它們可以讓程式碼更簡潔、更易於維護!


前端工程師
2024-10-06 19:42

這篇文章讓我對 TypeScript 的類型操作有了更深入的了解,感謝作者分享!


JS玩家
2025-02-01 02:30

雖然我主要用JS,但TypeScript的類型系統真的很有吸引力!這篇文章讓我更想學習TypeScript了!


信號運作的幕後揭秘

信號提供許多優勢,包括內建的詳細反應性、簡單的 API、簡潔而直接的數據流等。因此,信號被幾乎所有主要的框架所利用,包括 Solid、Qwik、Angular 和 Vue。由於信號如此受歡迎,因此現在有一個建議將其作為 JavaScript 語言的一部分:GitHub - tc39/proposal-signals: 一項將信號納入 JavaScript 的建議。信號很棒,但它們背後是如何運作的呢?在這篇文章中,我將以 SolidJs 語法進行探討,但這些概念適用於所有使用信號的框架。接下來,我會解釋真實實作的一個簡化版本。讓我們從信號世界中最基本的單元:信號本身開始探討吧。## 信號信號是一種反應性數據結構,用於管理應用程式中的狀態。讓我們來創建一個信號!我們創建一個擁有一個值(在這裡是“John”)和一個訂閱者列表的盒子。我們還返回了一個訪問器(這裡是 name)和一個設定器(setName)。訪問器提供了一種訪問信號內數據的方法;我們不能直接訪問值。設定器用於更新信號中的數據,因為不允許直接訪問。很好,我們有一個儲存狀態的方法,但我們還需要一種對狀態變更做出反應的方法。為此,我們可以使用效果。## 效果效果是我們用來對信號變化反應的工具。讓我們使用一個來看看它是如何運作的。我們創建了一個非常基本的效果,調用 name 訪問器並打印結果到控制台。這是我們的小效果,其中包含了一個匿名函數。要理解當我們創建一個效果時發生了什麼,需要介紹 跟蹤上下文。跟蹤上下文是一個全球運行時堆疊,幫助跟蹤目前正在執行的內容。當我們創建一個效果時,我們將其推入到跟蹤上下文中。一旦我們將效果推入到跟蹤上下文中,我們執行其包含的函數。在 createEffect 中執行任何訪問器時會發生魔法。因此,我們打印出 John 到控制台。並從跟蹤上下文中移除效果:我們已經打印到控制台。這有什麼大不了的呢?為了解釋這一點,我們需要調用設定器 setName。## 調用設定器在調用設定器時,我們更新信號持有的值。接下來,我們檢查訂閱者列表,將它們從列表中移除,並分別調用它們。我們將信號中的值替換為 “Jane”,從列表中移除效果,然後調用它。在這個過程中,這個效果重新註冊為信號的訂閱者。我們擁有一個對狀態變更做出反應的動畫系統。易於看到該系統如何用於細粒度的使用者介面更新,實質上創建一個僅在特定信號更改時渲染組件的效果。我們也可以看到該系統如何隨著更多組件訂閱更多信號而擴展。所有這些好處都不需要開發人員額外的努力—訂閱在幕後自動處理。簡單用一個字形容:了不起!## 記憶化如果我要你找出1216的積,你可能需要想一想——或許是先算62再加上其他數字,等等。但是如果我再問你一次,你可能會不費吹灰之力地說出192。有時,記住我們已經做過的計算比反覆運行它們更有好處。這種邏輯同樣適用於信號。我們可以用 createMemo 函數來在信號中實現這一模式。當我們調用 createMemo 函數時,在幕後發生了什麼?首先,我們創建一個具有訂閱者數組的備忘單元,類似於我們如何處理信號。然後,我們將一個特殊的包裝函數 M: f() 放在跟蹤上下文中,就像我們對效果所做的一樣。然後我們將結果保存到備忘單元中。這基本上意味著我們總是可以返回已保存的值,並避免重新計算,直到我們訂閱的信號發生變化為止。讓我們看看當用 memo()createMemo 函數的返回值)時會發生什麼。我們創建了一個調用 memo 函數的效果。再一次,我們看到與信號訪問器函數相同的模式——當其被調用時,我們查看跟蹤範圍的頂部,並將效果註冊為備忘單元的訂閱者。然後,我們打印出 effect: 2,使用備忘值而不重新運行計算——太成功了!當我們更改信號的值時,讓我們看看這一切如何運行。經過更改信號的值後,我們調用所有訂閱者——在此情況下為包裝備忘函數。再次運行函數導致以下結果:備忘包裝函數再次註冊為信號的訂閱者,備忘單元中保存的值更新為4,我們調用所有備忘訂閱者。然後,調用備忘訂閱者結果執行效果並打印 effect: 4。所有訂閱者被設回到位置,準備迎接下一個信號變化。基本上,備忘單元允許我們創建一個如我們所需般大的反應性圖,對於備忘重計算提供性能提升。記住要使用 createMemo 當你想避免重複計算繁重的計算時。## 總結我們探索了信號如何在幕後運作以及它們自動訂閱的機制。然後,我們探討了效果如何運作並依靠著跟蹤範疇訂閱信號。接著,我們學會了 createMemo 的操作方式以及如何用它來避免重複計算繁重的計算。信號在前端世界是一種強大而流行的工具。現在你理解了它們如何運作,你可以用它們創造些驚人的東西。


使用Llama 3.1創建合成數據集以微調您的LLM

數據是人工智慧的核心,開發高質量的數據集既具挑戰性又昂貴。良好的數據集可以彌補模型複雜性的不足,這在大型語言模型中尤為明顯。本文將探討如何使用Llama 3.1 405B創建自然語言git命令的合成數據集。我們會展示如何在不需大量GPU的情況下使用這個強大的工具。初步的指令和回應數據集準備好後,我們將使用Nvidia的Nemotron 4作為獎勵模型,篩選不良的提示/回應對,最終將該數據集發布到HuggingFace,以便後續微調我們的LLM。這個過程將是快速且免費的,並使您保持高度的控制。我將盡力在這篇文章中保持簡潔和知識豐富,因此請確保閱讀到最後以熟悉這一關鍵技能。


Zenly:隱私保護與定位使用的雙刃劍

現在許多用戶開始使用一款名為Zenly的定位交友應用程式,俗稱冰棒。這款APP提供即時查看親友位置的功能,不僅在社交圈流行,也在尋找抓姦的情侶間得到廣泛應用。近期的Zenly版本更新帶來了一些新功能和變化,讓我們一起來探討這些功能及如何應用。

Zenly的多種功能

Zenly主要是一個定位交友軟體,其功能包括即時顯示好友位置、查看手機電量、天氣、移動速度等。它還有聊天和記錄感情的功能,使人們之間保持聯繫。

隱藏位置的凍結功能

有時用戶可能希望隱藏位置,Zenly因此提供凍結功能。用戶可以選擇讓好友看到準確位置、模糊位置或最後的凍結位置,從而保護隱私。

Zenly外掛與定位破解

為了在不暴露位置的情況下給對方驚喜,用戶可以使用像iMyFone AnyTo這樣的外掛程式,隨時改變裝置的地理位置。

Zenly最新和被移除的功能

Zenly的版本更新經歷了一些重要變化。新增了摯友、知己等功能,但也取消了地新探險等舊功能。此外,「你的世界」功能讓用戶可以查看好友的行跡。

如何回復Zenly舊版

如果有人不習慣新版本,可選擇回到Zenly的舊版本,安卓用戶可以通過apkmirror下載舊版APK來實現這一點。


嵌入式Linux的Golang與HTMX結合應用

近六年來,我一直在Pantacor工作,該公司開發了一個開源框架,用於嵌入式Linux的容器化應用。隨著科技的不斷發展,嵌入式系統中的微服務架構變得越來越重要。

介紹

Pantacor致力於開發嵌入式Linux的解決方案,隨著新技術的引入,如Golang和HTMX的結合,應用的開發變得更為靈活和高效。

微服務中的韌性模式

在設計微服務架構時,韌性模式是確保系統穩定性的重要因素。這些模式幫助應對可能的故障,增強系統的耐用性。

單體架構

單體架構自成一體,但在應對複雜性和擴展性方面存在挑戰,許多組織轉向微服務以獲得更大的靈活性。

tmux使用心得

在使用tmux的五年間,我發現其中許多功能無法替代,大大提升了日常工作的效率和便利性。

創建無環境變數的Angular應用

從硬編碼的環境切換至通用構建,使得Angular應用能在不同環境中靈活運行,提升了開發效率。

Istio的無邊車創新

Istio引入的無邊車創新,為Kubernetes中的服務連接提供了新的解決方案,降低了系統的複雜性。

快速部署Elastic Search、Logstash和Kibana

在家用實驗室中部署自己的日誌平台,即使是接收Syslog事件,也能在幾分鐘內完成。

分布式系統中的故障轉移機制

故障轉移是分布式系統中的關鍵機制,確保在故障發生時系統仍能持續運行。

Pinia的正確用法

放棄Vuex,轉向Pinia後,我發現其提供了兩種語法,並示範了基本的用例。

架構元模式列表

架構元模式的分類,幫助開發者更好地選擇和實現合適的設計方案。

運用標記接口與反射的威力

通過運用標記接口與反射,進行單元測試,以驗證軟體設計的選擇。

在Angular中使用LaunchDarkly功能標籤

功能標籤的應用,為產品的功能發佈提供了更大的靈活性和控制力。


AI生成內容的商業指南

策略:建立真實的消費者信任

AI技術日新月異,越來越多企業開始利用AI生成內容。然而,今日的消費者也在迅速變得熟悉AI。低質量與過時的AI圖像風格常被聯想為廉價或不真實,這可能損害品牌的可信性。

要克服這一點,企業必須專注於將真實性與自家品牌的專有模型、人工觸感及價值融入到其AI驅動的內容中。

讓AI生成出色的內容,然後讓你的團隊專注於真實的交流互動。

AI與人類專業結合

提升AI生成內容最有效的方法之一是透過人類監督與編輯。AI能夠生成結構、重點,以及大量的訊息,但人類編輯可以為最終產品注入個性、文化相關性和情感深度。

提示: 在AI生成內容後,讓團隊成員審核並藉由添加個人故事、當地參考或具體客戶痛點來增強內容。這種方法可維持AI的效率,同時保留獨特的人類視角。

著重於敘事,而不僅僅是信息

AI經常在以引人入勝的敘事格式傳遞事實方面表現出色。敘事是企業用來情感上與觀眾連接的最強大工具之一。

透過訓練AI加入地方故事、個人經歷、企業歷史和客戶案例研究,你可以從靜態事實轉變為引人入勝且令人難忘的故事內容。

提示: 將客戶故事、推薦信,甚至企業幕後花絮融入AI生成的內容,以展示真實性並建立與讀者更深層的連結。

擁抱透明性

消費者重視誠實,當他們懷疑內容來自AI時,對品牌的信任可能會動搖。然而,透明性可以將其轉化為優勢。承認使用AI並將其定位為提高價值的工具可以建立信任並改善評價。

提示: 在您的博客文章、市場推廣材料或社交媒體內容中,公開討論AI如何支持您的業務。您可以突顯出AI在生成初稿或分析數據等任務中的助益,人類專家確保最終產品符合品牌價值和聲音。

優先考量高品質輸入

AI的好壞取決於所接收的數據和輸入。低質量的提示或最少的信息可能導致通用和缺乏靈感的內容。為克服這一點,企業需投入時間於打造反映所需風格和深度之深思熟慮的提示中。

提示: 訓練AI在高品質且特定於行業或品牌的數據上,確保提示設計逼使回應具詳細性、相關性和意義。這將產生感覺與品牌身份更加契合的內容。

利用AI實現個性化

AI具有分析消費者數據和偏好的能力,以創建更深層共鳴的個性化內容。利用AI驅動的洞見來量身定制訊息給具體受眾,可以打擊普通或大量生產內容的感知。

提示: 根據客戶行為、先前互動和人口統計數據,使用AI個性化電子郵件、產品推薦或博客文章。這一層次的定制讓內容感覺是專門為接收者打造的,促進聯繫和關懷。

保持品牌聲音一致

AI生成的內容有時可能脫離品牌已建立的語調和聲音。為防止這一點,企業需要創建明確的指南,以幫助使AI生成的內容保持與其信息的一致性。

提示: 制定品牌風格指南,定義公司語調、聲音和價值。將這些信息輸入您使用的AI工具中,確保輸出與您的品牌想要被感知的方式一致。定期審查和調整應成為此過程的一部分,以維持一致性。

平衡AI使用與人類互動

最終,AI不應取代人類互動,而應處理例行任務並增強更多人類互動。

消費者渴望真實的交互,在您的客戶旅程中擁有人工接觸點至關重要,如現場客戶支持、社交媒體上的個人回應和面對面互動。

提示: 使用AI來處理內容創建、數據分析或例行客戶服務查詢,確保在需要時消費者能夠獲得人類互動。這種平衡將提高效率,而不會犧牲消費者珍視的人際關係。

結論:AI作為真實性促進者,而非替代品

內容創建中的AI是一種強大的工具,需謹慎使用以避免廉價或不真實的感知。

藉由將AI與人類輸入融合,專注於敘事、保持透明,並保持強烈的品牌聲音,企業能生產出與受眾產生共鳴的高品質、真實內容。

當做對時,AI不會削弱真實性——反而透過更好的內容規劃來增強您的SEO和進站式行銷策略。

透過採用這些策略,企業可以利用AI的能力,同時確保其內容在消費者眼中保持真實、引人入勝且可信賴。


隱私全揭露!Zenly定位交友App的衝擊與魅力

近來,一款名叫Zenly、被暱稱為「冰棒」的定位交友應用程式迅速崛起,這款App讓使用者能夠追蹤朋友和家人的實時位置,提供了一種新的互動方式。Zenly的最新更新引發了廣泛關注,本文將深入探討其功能與影響。

Zenly的誕生與受歡迎原因

Zenly是一款由法國公司開發的應用程式,其誕生初衷是提供朋友和家人間更緊密的聯繫,迅速在年輕人中間流行,成為了解好友動態的便捷工具。

功能特色介紹

Zenly以其即時定位分享而聞名,用戶可以看到朋友的活動地點,設定去向通知和留下訊息等功能。不過,也有一些人擔心這會帶來過多的隱私曝光。

隱私與安全性疑慮

隨著個性化功能的推出,隱私問題成為使用者最關心的重點,Zenly如何保護數據安全是很多人關注的議題,也影響著其進一步的市場接受度。

社交互動的新形式

透過Zenly,用戶可以體驗到不同於傳統網絡社交平台的新互動方式。它不僅是定位工具,還成為了一個社交平台,使朋友間的互動更具象化。

使用體驗與評價

使用者對Zenly的評價褒貶不一。有人稱讚其便捷和創新,也有人擔憂它對隱私的潛在風險。這些反饋促使開發者尋求改善和創新。

更多推薦文章

Top