我想通过JSON发送一个对象,该对象实现了一个接口,但是还具有一些其他我不想发送的属性。我如何才能“删除”其他所有内容,因此我只有接口属性的纯对象?
示例:
config
答案 0 :(得分:3)
interfaces
和使用as
的强制转换都是编译时构造,在实际执行代码时,它们在运行时不执行任何操作。
您可以使用pick
中的lodash
方法:
const subset = _.pick(obj, ['x', 'y'])
或者,如果您不想引入库,则可以通过解构来实现:
const subset = (({ x, y }) => ({ x, y }))(obj);
另一种更高级的技术是将实际的类与reflect-metadata
和装饰器一起使用,以便能够在运行时对代码的内容做出更好的决策。