如何在打字稿中的类上计算属性?

混合

在javascript中,我应该这样做:

function a(b,c) {this.foo = b; this.bar = c; this.yep = b+c}
// undefined
b = new a(1,2)
// a {foo: 1, bar: 2, yep: 3}

但是我没有找到任何办法可以在打字稿中做到这一点。这些都不起作用:

class A {
    foo: number;
    bar: number;
    yep: foo + bar;
}

class A {
    foo: number;
    bar: number;
    yep: this.foo + this.bar;
}

class A {
    foo: number;
    bar: number;
    let yep:number = this.foo + this.bar;
}

class A {
    foo: number;
    bar: number;
    yep: number;

    constructor() {
        this.yep = this.foo + this.bar;
    }
}

class A {
    foo: number;
    bar: number;

    get yep(): number {
        return this.foo + this.bar;
    }
}

class A {
    foo: number;
    bar: number;
    yep: function () {return this.get("foo") + this.get("bar")};
}

我像这样初始化它:

somevar: A = {
    foo: 1,
    bar: 2
}

我也试过这个:

somevar: A = {
    foo: 1,
    bar: 2,
    this.yep: this.foo + this.bar
}

感谢您的帮助。这个数学将更加困难,我将不止一次需要它,所以我不想将其放在模板中。

卡坦

A是,class而不是interface,因此您需要构造一个实例。您不能简单地分配对象文字。仅仅兼容“形状”还不够。它必须是该类的一个实例。

变量与声明privateprotectedpublicconstructor将被添加到类。

例如:

class A {
  public yep: number;

  constructor(
      public foo: number, // will be transpiled in the constructor to: this.foo = foo;
      public bar: number  // will be transpiled in the constructor to: this.bar = bar;
  ) {
        this.yep = foo + bar; 
    }
}

const a: A = new A(1, 2);

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在打字稿中定义计算属性

如何在打字稿中排除方法的类中的所有属性的属性名称

如何在打字稿类中定位和修改一批属性

如何在打字稿中检测返回的类

如何在打字稿中的类内声明枚举?

如何在打字稿中实现类常量?

如何在打字稿中组合对象属性?

如何在打字稿中总结对象的属性?

在打字稿类中设置未定义的属性

如何在打字稿中使用抽象类

如何在打字稿中键入类装饰器?

如何在打字稿中两次计算小时和分钟

如何在打字稿中理解“属性'名称'在类型'用户'中是私有的”

如何在打字稿中的类方法上强制执行函数类型接口?

如何在打字稿中声明类似于类的外部库

如何在打字稿中从JSON进行转换时获取正确的类?

如何在打字稿中实现自定义错误类?

如何在打字稿中检索 T 类型的泛型类的名称

如何在打字稿中的对象中使用类变量?

如何在打字稿中的对象中使用类函数?

如何在打字稿中定义一个类?

如何在打字稿中创建属性数量未知的接口?

如何在打字稿中定义未知的对象属性键

如何在打字稿中安全地查询派生对象的属性?

如何在打字稿中检查对象属性的空值

如何在打字稿中创建动态嵌套的对象和对象属性

如何在打字稿中为现有类型添加属性?

如何在打字稿中向数组的每个对象添加属性?

如何在打字稿中不使用option(?)删除属性