从变量键中提取特定属性

时间:2019-07-17 04:49:12

标签: typescript

有没有办法像这样重写TypeScript?

之前

(({id, name}) => ({id, name}))(user)

之后

const keys = {id, name}
((keys) => (keys))(user)

1 个答案:

答案 0 :(得分:0)

此字符串(({id, name}) => ({id, name}))(user)是一个箭头函数,该函数接受对象并在参数列表中对其进行销毁并返回相同的对象。定义后,立即使用对象user调用此函数。

打字稿与打字有关,因此,如果您已声明user像这样

let user = { id: 1, name: '2' };

箭头函数会知道,作为参数传递的对象将具有这样的输入

{ id: number, name: string }

并且可以工作。

您可以根据需要重写箭头功能

((keys) => (keys))(user)

,它的工作原理相同。 keys将是{ id: number, name: string }类型的对象。

键入箭头函数可能是个好主意,这样您就可以重复使用它。例如

((keys: { id: number, name: string }) => (keys))(user)

因此keys将具有特定的类型,并将使用user参数的类型进行检查。

您也可以这样预先定义keys的类型

type Keys = { id: number, name: string }

并使用它来键入您的函数

((keys: Keys) => (keys))(user)

这与您要实现的目标类似,但是我们使用const keys来代替type Keys来定义类型