如何在TypeScript声明文件中设置默认的类属性值?

时间:2017-01-26 00:03:12

标签: javascript typescript

f.e。,我有

declare class Foo extends Bar {
    foo: number
}

如何声明foo的默认值(或初始值)为60。

我试过

declare class Foo extends Bar {
    foo: number = 60
}

但是我收到了像

这样的错误
4     foo: number = 60
                    ~~

path/to/something.js/Foo.d.ts/(4,28): error TS1039: Initializers are not allowed in ambient contexts.

3 个答案:

答案 0 :(得分:20)

尝试从类定义中删除声明。通过使用declare,它将定义一个类类型。该类型仅定义,不应具有实现。

class Foo extends Bar {
    foo: number = 60
}

答案 1 :(得分:4)

你的程序试图执行两个相互矛盾的任务。

  1. 它试图声明一个类存在,但实际上已实现在其他地方/否则。
  2. 尝试定义该实现。
  3. 您需要确定要执行哪些任务,并通过删除初始化程序或declare修饰符来相应地调整程序。

答案 2 :(得分:-5)

您需要一个构造函数才能将默认值设置为类属性。

试试这个:

((0.0, 100.0), (0.0, 100.0), (0.0, 100.0), (0.0, 100.0))

<强>更新 仔细查看你的代码片段后,我注意到你正在使用关键字declare,这样做,你刚刚定义了一个类类型,而这个不需要实现。

更新2: 此类不需要类构造函数,您可以使用或不使用一个构造函数初始化。

如果删除关键字声明,它应该可以正常工作。

declare class Foo extends Bar {
    foo: number;
  constructor(){
   this.foo = 60;
  }  
}