typescript - Typescript kasta objekt till föräldraobjekt


class base {
  a: number;
  b: number;
}

class child extends base {
  c: number;
}

let obj: child = { a: 4, b: 5, c: 6 };
let test: base = obj as base;
console.log(test);

Kommer att skriva ut { a: 4, b: 5, c: 6 }

Hur skriver man ut { a: 4, b: 5 } ?

Svar #1

Typer ändrar inte hur ditt program fungerar. De existerar bara under "kompilering".

För att ändra utskriften måste du få din kod att ta bort egenskapen.

Se

  • Anders Hejlsberg på Build 2013 (titta vid 18:05): han nämner att typer bara kommer att "försvinna", de är bara en design-tid artefakt. De ändrar inte din kod, det är din kod minus typer.
  • Din kod på TypeScript-lekplatsen kan du se att typer inte påverkar utdata

Så, för att bara skriva ut a och b måste du anropa en kod för att ta bort c

delete obj.c;

Relaterade artiklar