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

时间:2019-10-04 11:35:09

标签: typescript typescript2.0

我已经尝试过这种情况:

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


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

}

b(...a);

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

2 个答案:

答案 0 :(得分:1)

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);

答案 1 :(得分:0)

TypeScript does support spreading objects to parameter names.

在参数名称前写三个点,在类型旁边写一个数组运算符。

示例:

function add(x: number, ...vals: number[])