Я обновил вопрос, чтобы включить пример. Похоже, мое предыдущее решение не является решением, поскольку я не смог заставить его работать на простом примере.
ли способ динамического извлечения членов из объекта, принадлежащего интерфейсу (то есть, не указывая их снова явно), как это:
let subset = { ...someObject as ISpecific };
В настоящее время я получаю всех членов, которые есть у someObject. Так что оператор спреда здесь не работает. Есть ли еще способы сделать это?
Пример:
interface ISpecific { A: string; B: string; }
class Extended implements ISpecific { public A: string = '1'; public B: string = '2'; public C: string = '3'; }
let someObject = new Extended();
let subset = { ...someObject as ISpecific };
console.log(subset); // -> { A, B, C } but want { A, B }
Приведения TypeScript - это просто подсказки для компилятора, а не реальные преобразования во время выполнения.