为实现一个接口的多个类设置默认值的模式或构造

托伊沃·萨文

我发现自己重复了很多代码,大致如下:

interface IMyInterface {
  commonA: string;
  commonB: string;
}

class Foo implements IMyInterface {
  commonA: string = "hello";
  commonB: string = "world";
  foo: string = "Foo!";
}

class Bar implements IMyInterface {
  commonA: string = "hello";
  commonB: string = "world";
  bar: string = "Bar!";
}

就我而言,我有许多类,它们都共享commonAcommonB但在其他方面有所不同。现在,我知道我无法在界面中设置默认值,但是是否有一些设计模式或 TS 构造允许我在一个地方定义默认值?

亚历克斯·布罗什图特

接口不应该有默认值或任何值,但您绝对可以使用抽象类来实现这一点。https://www.typescriptlang.org/docs/handbook/classes.html#abstract-classes

interface IMyInterface {
  commonA: string;
  commonB: string;
}

abstract class Base implements IMyInterface {
  commonA: string = "hello";
  commonB: string = "world";
}

class Foo extends Base {
  foo: string = "Foo!";
}

class Bar extends Base {
  bar: string = "Bar!";
}

更多关于抽象类和接口之间的区别:http : //dotnetpattern.com/typescript-abstract-class

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果构造函数值为空,我可以给它一个默认值吗?

具有来自继承的抽象类的值的构造函数,该类实现一个接口

Python Argparse-将参数的默认值设置为另一个参数

RxJS:为另一个可观察对象设置默认值

为创建和更新的日期列设置默认值是一个好习惯吗?

将模型中字段的默认值设置为另一个模型实例

我想设置一个包含 BorderRadius.circular 的值作为构造函数参数的默认值

使用多个类实现一个接口

为实现接口的每个类获取一个实例

如何将微调器中的第一个值(默认值)设置为空

将下拉列表中的第一个值设置为php中的默认值

将下拉列表中的第一个值设置为 VueJs 中的默认值

选择第一个时,第二个微调器的位置设置为默认值

根据另一个参数的值设置一个参数的默认值

如何为XmlElement指定一个不同于其构造函数中默认值的默认值?

C++:在一个类中实现一个接口或一个可选接口的多个实例

Typescript为作为参数传递给另一个函数的函数设置默认值

是否有C ++准则将第一个枚举设置为“安全”默认值?

一个类可以继承其他类的接口所构造的方法的实现吗?

如何添加默认构造函数并使它调用另一个构造函数并使用默认值?

python是否有一种方法可以将一个论点的默认值设置为该函数中的另一个论点?

如何在构造函数中分配一个常量值作为默认值

Qualtrics:保存上一个滑块响应并在下一个滑块中设置为默认值

如何在python中仅调用类的第二个值,同时将第一个值保留为默认值?

当一个参数是类时,使用默认值初始化类

为类中的属性设置默认值

为类成员函数的struct输入设置默认值

Json 类保存一个值,同时包含其他默认值

在单个语句中为多个列设置默认值