Typescript 将对象转换为父对象

Ale*_*dre 6 casting typescript

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);
Run Code Online (Sandbox Code Playgroud)

将输出 { a: 4, b: 5, c: 6 }

如何输出 { a: 4, b: 5 } ?

Bru*_*oLM 4

类型不会改变程序的工作方式。它们仅存在于“编译”期间。

要更改输出,您必须使代码删除该属性。

因此,要仅输出ab您必须调用代码来删除c

delete obj.c;
Run Code Online (Sandbox Code Playgroud)