当前位置: 首页 > 知识库问答 >
问题:

typescript - ts 如何继承父类并修改属性?

徐兴昌
2023-09-22

ts 如何继承父类并修改属性?

image.png
image.png

相关代码

export interface ITableData {    flag: 0 | 1    measure_name: string    measure_value: number    result_desc: string    standard_deviation: number    standard_value: number    name: string}interface IMeasureData extends ITableData {    measure_value: number | string}const measureList: IMeasureData[] = [{ measure_value: "2" }]

共有2个答案

谢洛城
2023-09-22
export interface ITableData<T = number> {  flag: 0 | 1;  measure_name: string;  measure_value: T;  result_desc: string;  standard_deviation: number;  standard_value: number;  name: string;}const measureList: Partial<ITableData<number | string>>[] = [{ measure_value: "2" }];

我提出两个点吧:

1. 充分使用泛型2. 结合Partial实现可选参数
邢浩邈
2023-09-22

可以使用工具类型 Omit 将需要修改的属性 measure_value 剔除掉,然后继承剔除后的接口,并对该属性进行重新声名。(PS:如下代码中,我将原接口的属性改成可选属性,以避免赋值时的报错。)

export interface ITableData {  flag?: 0 | 1;  measure_name?: string;  measure_value?: number;  result_desc?: string;  standard_deviation?: number;  standard_value?: number;  name?: string;}interface IMeasureData extends Omit<ITableData, "measure_value"> {  measure_value: number | string;}const measureList: IMeasureData[] = [{ measure_value: "2" }];

希望对题主有所帮助!

 类似资料:
  • 为什么需要这样AddDataType<'AlarmTips'> 才能正确获取类型? 不是已经使用 <T>进行关联了吗?

  • 我在挣扎。 当扩展一个类时,我可以很容易地向它添加一些新属性。 但是,当我扩展基类时,如果我想向基类的对象(简单对象的属性)添加新属性,该怎么办? 下面是一个带有一些代码的示例。 基类 派生类 现在,正如您可以从行内注释中看到的,这将激怒TypeScript。但这在JavaScript中工作。那么,实现这一目标的正确方法是什么呢?如果没有,问题是在我的代码模式本身吗?什么模式适合这个问题? 也许您

  • 问题内容: 我想知道如何将某些函数返回的父对象转换为子类。 我不能更改A类。如果可以的话,我可以对A类实现functionIneed,但是由于代码的结构,这是不可能的。 问题答案: Python不支持“广播”。您将需要编写代码,以便它可以适当地进行初始化。

  • 我有一个MyClass,它的属性类型为MyAttribute。该类由MySubClass继承,其属性类型为MySubAttribute。MySubAttribute是MyAttribute的子类: 现在假设我有以下代码: 如何生成MySubAttribute类型的返回值?

  • null 但是当我在一个项目中看到有效的POM时,我发现它还继承了、(这是一个问题,这应该是包含它的POM的描述,而不是它的子级。所有子级都有一个类似“所有POM的根”的描述有什么意义) 那么,是否存在一个实际的列表,或者它只是从父POM继承所有内容?我在工件的清单中使用了其中的一些属性,因此我想添加有意义的值

  • 问题内容: 我有及其继承的类。如何从课程中获取属性? 举例来说,让这些和对象: 我想做一些事情,例如: 并得到。我怎样才能做到这一点? 问题答案: 你不能。 实例仅继承父类的方法和属性,而不继承 实例 属性。您不应混淆两者。 是 实例的实例 属性。本实例将有他们 自己 的副本属性。 通常,您将对构造函数进行编码以采用两个参数: 另一种方法是保留对实例的引用: 从那里不再继承。像这样使用它: