[Typescript] Using 'Pick' to create a sub-type from original type

There might be cases where you have selective data for your entities. Let‘s say that you are building a public API endpoint to get all the registered users from your users collection. Now there might be sensitive data in your User entity type that you may not want to return in the response. In such cases, Pick can help you be selective and get only the properties you need.

In this lesson, we will learn how to extract properties from a type and create a new type from it.

interface Item {
  name: string;
  description: string;
  price: number;
  currency: string;
  image: string;
};

type ItemPreview = Pick<Item, "name" | "image">;

const item: Item = {
  name: "Macbook",
  description: "Macbook Pro 2019",
  price: 2138,
  currency: "USD",
  image: "https://cdn.apple.com/mbpro.png"
};

const itemPreview: ItemPreview = {
  name: item.name,
  image: item.image,
  description: item.description
};

console.log(itemPreview);
console.log(item);

[Typescript] Using 'Pick' to create a sub-type from original type

原文地址:https://www.cnblogs.com/Answer1215/p/12364808.html

时间: 2024-10-08 10:35:11

[Typescript] Using 'Pick' to create a sub-type from original type的相关文章

在Eclipse中配置Tomcat时,出现Cannot create a server using the selected type错误

在eclipse中配置Tomcat时,出现Cannot create a server using the selected type错误 原因:Tomcat被删除或者是重新安装,并且安装目录改变了. 解决方法:在"Window->preferences->Server->Runtime Environment",编辑Tomcat的目录为你新安装的目录,然后保存,这样就可以建立Tomcat server了.

vue element-ui typescript tree报错 === Property &#39;getCheckedNodes&#39; does not exist on type &#39;Element | Element[] | Vue | Vue[]&#39;.

import { Tree } from 'element-ui' const ref = <Tree>this.$refs.tree ref.getCheckedNodes() vue element-ui typescript tree报错 === Property 'getCheckedNodes' does not exist on type 'Element | Element[] | Vue | Vue[]'. 原文地址:https://www.cnblogs.com/cynthi

Type.MakeGenericType 方法 (Type[]) 泛型反射

替代由当前泛型类型定义的类型参数组成的类型数组的元素,并返回表示结果构造类型的 Type 对象. 命名空间:   System程序集:  mscorlib(mscorlib.dll 中) public virtual Type MakeGenericType( params Type[] typeArguments ) 参数typeArguments将代替当前泛型类型的类型参数的类型数组. 返回值Type: System.TypeType 表示的构造类型通过以下方式形成:用 typeArgume

input[type=&#39;submit&#39;]input[type=&#39;button&#39;]button等按钮在低版本的IE下面,去掉黑色边框的问题

今天做一个tabs效果的时候,发现上面的button在低版本下会出现黑色的边框,很难看,于是我整理了下几个去掉黑色边框的办法: 1.在button的外层嵌套一个div,设置button的border:none; <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <st

Hibernate中value type与entity type

在Hibernate框架中,为了更好的配合数据库,将类型分为value type和entity type. entity type特征 1.有identifier(标识符)作为类对象的唯一标识. 2.一般可以被解析为一张table(表). 3.通过identifier(标识符)可以被引用. value type特征 1.无identifier(标识符),每一个类对象都是唯一的. 2.不会被解析成一张表. 3.不会被引用,value type会被存储在entity type中. 附上Hiberna

action之间传参为中文;type=&#39;redirect&#39;和 type=&#39;redirectAction&#39;主要区别

摘录自:http://blog.csdn.net/lhi705/article/details/7446156 [html] view plain copy print? Struts2中action之间传参中文乱码的问题 解决方法一(已经验证,可以): 两个action都定义要传的参数属性的get和set方法,必须相同! 在struts.xml中定义: <result name="input" type="redirect"> <param na

swift 中Value Type VS Class Type

ios 中Value Type 和 Class Type 有哪些异同点,这个问题是在微信的公共帐号中看到的,觉得挺有意思,这里梳理一下. 1.swift 中为什么要设置值类型? 值类型在参数传递.赋值的过程中采用的是Copy的过程,copy的"值"是该值所在的内存块,相比于class类型,copy更直接,没有对象中方法调用(饮用计数.copy方法等),因此效率更高.猜测swift引入的值类型主要是为了提高效率. 2.swift 存在哪些值类型 swift中常见的值类型有 struct,

form表单重复提交,type=“button”和type=“submit”区别

公司测试提了一个项目后台在IE浏览器下(360,firefox就没问题)出现数据重复的问题,调试了好久终于发现问题所在,也不知道是谁写的代码,醉醉的.... 错误地点: <input type="submit" value="提交"  class="btn"  id="formSubmit" onclick="checkForm()"  /> type类型写成submit,而在checkForm

#define offsetof(TYPE, MEMBER) ((size_t) &amp;((TYPE *)0)-&gt;MEMBER)

#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)宏的运行机理:1. ( (TYPE *)0 ) 将零转型为TYPE类型指针; 2. ((TYPE *)0)->MEMBER 访问结构中的数据成员; 3. &( ( (TYPE *)0 )->MEMBER )取出数据成员的地址; 4.(size_t)(&(((TYPE*)0)->MEMBER))结果转换类型.巧妙之处在于将0转 换成(TY