typescript 類型映射 (ReadOnly、Partial)

有時候需要一個類型,是依賴于上一個類型但是,對屬性的要求去不同interface Person{name: string;agent: number;
}
type Person2 = Readonly<Person>;
type Person3 = Partial<Person>;
class Test {run() {let person: Person = {name: 'dd',agent: 1};person.name = 'cc';let person2: Person2 = {name: 'read',agent: 1};// person2.agent = 3; 報錯let person3: Person3 = {name: 'person 3' // 屬性不完整也不會報錯}}
}ReadOnly、Partial源碼type Readonly<T> = {readonly [P in keyof T]: T[P];
}
type Partial<T> = {[P in keyof T]?: T[P];
}用 in, keyof即可實現type Pick<T, K extends keyof T> = {[P in K]: T[P];
}
type Record<K extends string, T> = {[P in K]: T;
}

  

轉載于:https://www.cnblogs.com/smzd/p/11206044.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249748.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249748.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249748.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA中幾種常用的RPC框架介紹

RPC是遠程過程調用的簡稱&#xff0c;廣泛應用在大規模分布式應用中&#xff0c;作用是有助于系統的垂直拆分&#xff0c;使系統更易拓展。Java中的RPC框架比較多&#xff0c;各有特色&#xff0c;廣泛使用的有RMI、Hessian、Dubbo等。RPC還有一個特點就是能夠跨語言&#xff0…

C#中的多線程 - 同步基礎

C#中的多線程 - 同步基礎 C#中的多線程 - 同步基礎 1同步概要在第 1 部分&#xff1a;基礎知識中&#xff0c;我們描述了如何在線程上啟動任務、配置線程以及雙向傳遞數據。同時也說明了局部變量對于線程來說是私有的&#xff0c;以及引用是如何在線程之間共享&#xff0c;允許…

WC2019 自閉記

不咕了 Day 1 2019/1/24 辣么快就到冬令營了&#xff0c;還沉迷于被柿子吊打的狀態的菜雞一時半會還反應不過來。我們學校這次分頭去的冬令營&#xff0c;差點上不了車。這次做的動車居然直達廣州&#xff0c;強啊。 然鵝還是到太晚&#xff0c;沒飯吃了。路上花了15大洋買了個…

v-slot vue2.6新增指令使用指南

子組件 <template><div class"wrapper"><slot name"demo" :msg"msg" text"this is a slot demo , ">this is demo slot.</slot></div> </template><script>export default {components: {…

跨語言RPC框架Thrift詳解

一、 概念 Apache的Thrift軟件框架&#xff0c;是用來進行可伸縮的、跨語言的服務開發&#xff0c;它通過一個代碼生成引擎來構建高效、無縫的服務&#xff0c;這些服務能夠實現跨語言調度&#xff0c;目前支持的語言有&#xff1a; C, Java, Python, PHP, Ruby, Erlang, Perl,…

小知識

1.時間格式的處理 new Date().format(yyyy-MM-dd hh:mm:ss) 2.保留兩位小數的方法 element.recTime element.recTime.toFixed(2) 3.如何判斷一個對象為空的方法 JSON.stringify(this.getEcho) ! "{}" 4.判斷時間是否為標準格式的方法 (this.formValidate.outDateti…

增加標 和增加其內容

create table student( sno varchar(20) not null comment學號, sname varchar(20) not null comment學生姓名, ssex varchar(20) not null comment學生性別, sbirthday datetime comment學生出生年月, class varchar(20) comment 學生所在班級, primary key…

RPC服務和HTTP服務對比

很長時間以來都沒有怎么好好搞清楚RPC&#xff08;即Remote Procedure Call&#xff0c;遠程過程調用&#xff09;和HTTP調用的區別&#xff0c;不都是寫一個服務然后在客戶端調用么&#xff1f;這里請允許我迷之一笑~Naive&#xff01;本文簡單地介紹一下兩種形式的C/S架構&am…

MTK-TP(電阻屏校準程序ts_lib移植)

現今的項目中已經很少有使用電阻TP&#xff0c;但總有些奇怪的需求。如果項目中遇到需要校準電阻屏如何保證較快且較穩的調試TP呢。這里介紹使用ts_lib庫來進行調試。 當然也可以使用一些常見的校準算法&#xff0c;采集5點&#xff0c;但最終的公式應該是不變的&#xff1a; X…

mac vscode 實用快捷鍵

cmddel:光標左邊刪到頭 cmdfndel:光標右側刪到頭轉載于:https://www.cnblogs.com/smzd/p/11474488.html

ONENET讀取與控制麒麟座MINI開發板LED狀態

硬件 麒麟座MINI開發板V1.4 嵌入式軟件 OneNET_Demo_ESP8266_EDP_Led 工程修改內容 led.c文件修改 函數LED_Init&#xff0c;mini開發板LED所在GPIO為PB6、PB7、PB8、PB9 函數LED_GetValue&#xff0c;mini開發板LED狀態與IO口狀態相反 /** * brief LED指示燈初始化函數**/v…

洛谷 - P1217 - 回文質數 - 枚舉

https://www.luogu.org/problemnew/show/P1217 考慮暴力生成所有的回文數然后再判斷是不是質數。注意個位的選擇實際上只有4種。所以是 $4*10^3*10^34*10^6$ &#xff0c;完全充裕的復雜度。 #include<bits/stdc.h> using namespace std; #define ll long longint a,b; v…

git commit之后,想撤銷commit

寫完代碼后&#xff0c;我們一般這樣git add . //添加所有文件git commit -m "本功能全部完成"執行完commit后&#xff0c;想撤回commit&#xff0c;怎么辦&#xff1f;這樣涼拌&#xff1a;git reset --soft HEAD^這樣就成功的撤銷了你的commit注意&#xff0c;僅僅…

引用數據類型

1.Scanner類 Scanner類是引用數據類型的一種&#xff0c;我們可以使用該類來完成用戶鍵盤錄入&#xff0c;獲取到錄入的數據。 引用數據類型的使用&#xff1a; 與定義基本數據類型變量不同&#xff0c;引用數據類型的變量定義及賦值有一個相對固定的步驟或格式。 數據類型 變…

phpmyadmin登錄遠程mysql數據庫

之前只用phpmyadmin登錄本地的mysql&#xff0c;管理另一個遠程數據庫的時候發現&#xff0c;單純用命令行處理字符串、換行符實在是不好使&#xff0c;所以配置了遠程登錄mysql&#xff0c;很簡單的問題結果沒有搜到合適的方法&#xff0c;所以記錄下我的配置方式。 phpmyadmi…

activemq的使用場景

一、消息隊列概述 消息隊列中間件是分布式系統中重要的組件&#xff0c;主要解決應用耦合&#xff0c;異步消息&#xff0c;流量削鋒等問題。實現高性能&#xff0c;高可用&#xff0c;可伸縮和最終一致性架構。是大型分布式系統不可缺少的中間件。 目前在生產環境&#xff0c…

復習JavaScript隨手記

數據類型 基本類型 stringnumberbooleanundefinednumber類型,包含整數浮點數 NaN和自己都不相等,涉及NaN的計算結果都是NaN isNaN()函數用于判斷一個數是不是NaN 引用類型 object類型 function類型 繼承自object object類型定義了prototype屬性 可以通過它動態給對象綁定方法和…

TP5在前端時間戳轉換為時間格式

value"{:date(Y-m-d H:i:s,$data[add_date])}" 例如&#xff1a; <td>{:date(Y-m-d H:i:s,$d[create_time])}</td> 轉載于:https://www.cnblogs.com/shark1100913/p/9468077.html

Java(發布/訂閱模式)

1、概述 觀察者模式又稱為發布/訂閱(Publish/Subscribe)模式 觀察者設計模式涉及到兩種角色&#xff1a;主題&#xff08;Subject&#xff09;和觀察者&#xff08;Observer&#xff09; &#xff08;1&#xff09;Subject模塊 Subjec模塊有3個主要操作 addObserver()&#…

VUE $SET源碼

轉載于:https://www.cnblogs.com/smzd/p/11634255.html