网站搜索

visual studio - 声明上下文中不允许使用初始化器


Windows/system32 和 VS 的 TypeScript 版本都是 3.0.3,但我仍然收到错误。

export declare class ApplicationInitStatus {
  private appInits;
  private resolve;
  private reject;
  private initialized;
  readonly donePromise: Promise<any>;
  readonly done = false;
  constructor(appInits: (() => any)[]);
}

在此语句中,readonly done=false; 出现错误。

答案#1

由于你在 d.ts 文件中使用了 declare,类中不能包含任何代码(包括字段的初始化)。declare 用于告诉 TypeScript 编译器某些类已经在 JavaScript 中定义(用于互操作性)。

如果你想在 Typescript 中创建一个新类,请移除 declare 并将代码移到 ts 文件中。

如果你想声明一个存在于 JavaScript 中的类,请移除 readonly done=false,用 readonly done: boolean 或 readonly done: false(false 字面量类型,而不是值 false)替换它