我已经尝试过这种情况:
let a = { id: 1, name: "Misha" };
function b(id: number, name: string) {
}
b(...a);
我需要将对象的所有属性都应用为参数
答案 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[])