有没有办法像这样重写TypeScript?
(({id, name}) => ({id, name}))(user)
const keys = {id, name}
((keys) => (keys))(user)
答案 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
来定义类型