首页 > 其他分享 >[Typescript] 38. Medium - Diff

[Typescript] 38. Medium - Diff

时间:2022-09-27 01:55:21浏览次数:75  
标签:Typescript string gender age number Medium Expect Diff type

Get an Object that is the difference between O & O1

/* _____________ Your Code Here _____________ */

type Diff<T, S> = {
  [K in Exclude<(keyof T | keyof S), (keyof T & keyof S)>]: (T & S)[K]
}

// Exclude<(keyof Foo | keyof Coo), (keyof Foo & keyof Coo)> = 'age' | 'gender', only get diff

/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'

type Foo = {
  name: string
  age: string
}
type Bar = {
  name: string
  age: string
  gender: number
}
type Coo = {
  name: string
  gender: number
}

type cases = [
  Expect<Equal<Diff<Foo, Bar>, { gender: number }>>,
  Expect<Equal<Diff<Bar, Foo>, { gender: number }>>,
  Expect<Equal<Diff<Foo, Coo>, { age: string; gender: number }>>,
  Expect<Equal<Diff<Coo, Foo>, { age: string; gender: number }>>,
]

 

标签:Typescript,string,gender,age,number,Medium,Expect,Diff,type
From: https://www.cnblogs.com/Answer1215/p/16733137.html

相关文章

  • 二、typescript类(二)构造函数、继承
    constructor构造函数:会在对象创建时调用,可以自定义对象的值1classDog{2name:string;3age:number;4bark(){5alert("汪!");6console.......
  • 二、typescript类(三)抽象类
    abstract开头的类是抽象类:抽象类和其他类区别不大,只是不能用来创建对象 抽象类,就是被继承的类抽象类,可以添加抽象方法,抽象方法只能添加在抽象类中;1abstractclass......
  • Unbiased Warped-Area Sampling for Differentiable Rendering
    渲染方程\(I(\theta)=\int_Df(w,\theta)dw\)。其中\(D\)是某个积分域(比如半球空间),\(\theta\)是场景参数,比如(顶点位置,材质参数等等)。对于可微分渲染,我们实际上感兴趣的是......
  • TypeScript:声明文件
    声明文档的作用当使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全、接口提示等功能。假如我们想使用第三方库jQuery,一种常见的方式是在html中通过<sc......
  • TypeScript:泛型
    什么是泛型泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。1函数泛型//<T>表示定义模板类型,(arg:T):T表示......
  • TypeScript:类的类型变量
    classPerson{//脱衣服privatedisrobe(){//.....}//穿衣服privatedress(){//.....}//洗操publictak......
  • TypeScript:函数
    接口中使用函数接口可以描述函数类型;为了使用接口表示函数类型,我们需要给接口定义一个调用签名。它就像是一个只有参数列表和返回值类型的函数定义。参数列表里面的每个参......
  • TypeScript:类
    一、概念简单认知类是现实世界或思维世界中的实体在计算机中的反映,它将数据(属性)以及这些数据上的操作(方法)封装在一起。对象是具有类类型的变量。类和对象是面向对象......
  • TypeScript:类型断言
    什么是类型断言有些时候,我们需要做一些“自己比编译器更清楚的知道自己在做什么”,这个时候就用到断言,告诉编译器:没错,就是这样的,就是要这么干。编译器也就假设:嗯,这个程序员......
  • TypeScript:运行环境搭建
    环境搭建1、安装node(16版本)2、全局安装TypeScript指令:npmi-gtypescript3、查看版本指令:tsc-v4.创建tsconfig.js文件指令:tsc--init 文件:{"c......