如何在Typescript类中声明getter

时间:2019-11-05 12:23:53

标签: typescript

如何在Typescript类中声明(而不是定义)?

类似的东西:

class Foo {
   declare get bar();
   ...
}

实际的实现是通过一些废话Javascript注释动态添加的,但我想让Typescript知道它的存在。

2 个答案:

答案 0 :(得分:1)

如何创建带有可选属性的接口?它会使TypeScript知道它可能存在于此类中。同时,该属性不会在类中被定义,因此在这个废话JS注释定义了bar属性之后,就没有风险覆盖它。多写一些,但是这里有一个演示如何实现的:

interface DeclaredVars {
  bar?: boolean;
}

class Some implements DeclaredVars {

  constructor() {
    console.log((this as DeclaredVars).bar);
  }
}

const s: DeclaredVars = new Some();
console.log(s.bar);
s.bar = true;
console.log(s.bar);

Live demo

因此,您无需定义属性,但可以尝试访问它并稍后进行修改。类型声明是必需的。

答案 1 :(得分:0)

将其声明为属性。

class Foo {
  bar: string; // or whatever type the getter returns
}

这是因为当您使用该类时,将使用bar作为属性。

console.log(foo.bar);