如何在函数中使用spread作为参数?

OPV*_*OPV 7 typescript typescript2.0

我试过这个案例:

let a = { id: 1, name: "Misha" };


function b(id: number, name: string) {

}

b(...a);
Run Code Online (Sandbox Code Playgroud)

我需要对象的所有属性都将作为参数应用

Fab*_*uer 9

TypeScript 不支持将对象传播到参数名称。

如果您可以更改函数签名,则可以期望兼容类型的对象作为第一个函数参数,如下所示:

// interface name is just an example
interface IUser {
  id: number;
  name: string;
}

let a: IUser = { id: 1, name: "Misha" };

function b({ id, name }: IUser) {
  console.log(`User ID is ${id} and name is "${name}"`);
}

b(a);
Run Code Online (Sandbox Code Playgroud)