Búsqueda de sitios web

javascript - typescript asignación por destructuración con interfaz


Intenté hacer una asignación por desestructuración con una interfaz, pero no puedo escribir así.

interface TYPE {
  id?: number;
  type?: string;
}

const e =  {
  'id': 123,
  'type': 'type_x',
  'other': 'other_x'
}
const {...foo}: {foo: TYPE} = e;
console.log(foo.id, foo.type) // expected: 123, 'type_x'

Respuesta #1

Simplemente declara el tipo en la variable, sin esa extraña notación de objeto:

const { ...foo }: TYPE = e;

Sin embargo, esa es una manera extraña de hacer una copia de un objeto; normalmente se hace así:

const foo: TYPE = { ...e };