Я могу без проблем распространять массив в качестве аргументов функции / конструктора: (test. js)
class Person {
name;
age;
constructor(name, age) {
this.name = name;
this.age = age;
}
}
let a = ['Claire', 8];
let p = new Person(...a);
console.log(p);
Однако в TypeScript то же самое не работает: (test.ts)
class Person {
constructor(
public name: string,
public age: number
) {}
}
let a = ['Claire', 8];
let p = new Person(...a); // Error: An argument for 'name' was not provided.
console.log(p);
Это ошибка в TypeScript? Он не может понять, как использовать синтаксис распространения здесь. Есть ли обходной путь или мне нужно вручную назначать каждый отдельный аргумент?