我在使用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: ''}
答案 0 :(得分:0)
TypeScript类型系统不会影响实际的JavaScript。
将其视为一种提示或工具,可帮助您更好地了解手头的内容。
如果要从对象中删除属性,请考虑使用lodash
或ramda
等实用程序。