如何在Typescript类中声明(而不是定义)?
类似的东西:
class Foo {
declare get bar();
...
}
实际的实现是通过一些废话Javascript注释动态添加的,但我想让Typescript知道它的存在。
答案 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);
因此,您无需定义属性,但可以尝试访问它并稍后进行修改。类型声明是必需的。
答案 1 :(得分:0)
将其声明为属性。
class Foo {
bar: string; // or whatever type the getter returns
}
这是因为当您使用该类时,将使用bar
作为属性。
console.log(foo.bar);