TypeScript将对象转换为另一个对象,仍具有原始类型的属性

时间:2018-05-27 03:14:33

标签: typescript casting properties

问题

我在使用TypeScript转换时遇到问题。我收到的是B类型的对象,我正在尝试将该对象转换为A类型,但也不要让类型为B的属性标记为骑行。

问题

有没有办法在不明确引用otherName属性的情况下执行此操作?这显然是我实际情况的精简版。

export class A {
  id: 0;
  name: '';
}

export class B extends A {
  otherName: '';
}

例如:

如果我从

开始
const b = new B();
const a1 = <A> b;
const a2 = b as A;
console.log(b, a1, a2);

结果:

{id: 0, name: '', otherName: ''}, {id: 0, name: '', otherName: ''}, {id: 0, name: '', otherName: ''}
相反,我希望有类似的东西:

{id: 0, name: '', otherName: ''}, {id: 0, name: ''}, {id: 0, name: ''}

1 个答案:

答案 0 :(得分:0)

TypeScript类型系统不会影响实际的JavaScript。

将其视为一种提示或工具,可帮助您更好地了解手头的内容。

如果要从对象中删除属性,请考虑使用lodashramda等实用程序。