【问题标题】:Tyepscript cast object to parent object打字稿将对象转换为父对象
【发布时间】:2017-01-08 01:04:40
【问题描述】:
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);

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

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

【问题讨论】:

    标签: typescript casting


    【解决方案1】:

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

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

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

    delete obj.c;
    

    【讨论】:

    • 而且我也看到属性定义在编译后也消失了,所以没有办法使用hasOwnProperty...如果类属性发生变化,我想找到一种通用的方法。使用删除,我将不得不将代码更改为不同的位置。能够仅更改类的结构会很棒。 :-/
    猜你喜欢
    • 2021-07-24
    • 2020-12-15
    • 2017-03-22
    • 2018-10-10
    • 1970-01-01
    • 2017-02-11
    • 2018-06-07
    • 2021-02-24
    • 1970-01-01
    相关资源
    最近更新 更多