如何用打字稿中唯一的区别来描述对象?

时间:2020-06-08 09:06:44

标签: typescript rest

我从服务器端收到了一个很大的对象,让我们说

{
 id:'asd123',
 created: 1591605861388,
 // hundred of fields more...  
}

除了“创建”之外,我的模型类型实际上是相同的-这是日期。

type Model = {
 id: string,
 created: Date,
 ...
}

我需要创建创建Model类型模型的函数

function x(raw:???):Model{ // intentionally simplified
 return { 
    ...raw,
    created: new Date(raw.created) 
  }
} 

我必须写些什么而不是问号? 我该如何在打字稿中定义它?

1 个答案:

答案 0 :(得分:1)

您可以使用Omit

Playground

type Model = {
 id: string,
 created: Date,
}

type Model2 = Omit<Model, 'created'> & {
    created: string;
}

const test: Model2 = {
    created: '2020-08-12',
    id: '123'
}