安装Blueprint时,环境上下文中不允许使用初始化程序

JKi*_*ian 15 typescript blueprintjs

我正在尝试@blueprintjs/core在我的项目中使用该库.但是,当我编译我的代码时,我遇到了很多这样的错误:

node_modules/@blueprintjs/core/dist/common/classes.d.ts(4,30):
  error TS1039: Initializers are not allowed in ambient contexts.
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?我究竟做错了什么?

JKi*_*ian 16

截至@blueprintjs/core@1.7.0目前,Blueprint现在使用TypeScript 2.1编译.使用此新版本的TypeScript,初始化程序将添加到常量的发出类型中.

所以之前,发射的一行classes.d.ts看起来像这样:

export declare const ACTIVE: string;
Run Code Online (Sandbox Code Playgroud)

它现在看起来像这样,包括一个初始化器:

export declare const ACTIVE = "pt-active";
Run Code Online (Sandbox Code Playgroud)

声明文件中的这种新语法使旧版本的编译器不满意.要使错误消失,您需要确保至少使用TypeScript 2.1编译项目.


rap*_*ama 6

问题是您正在d.ts文件中编写代码。您应该只在这些“环境”文件中写入类型。初始化变量、编写函数等不应该在“环境”文件中完成。


Nei*_*ski 5

我有这个问题,但对我来说,更新本地(和全局)TypeScript包并没有解决问题.幸运的是,我遇到了以下文章哪个版本的TypeScript是Visual Studio使用的?

简而言之,当我更新到TypeScript 2.2时,Visual Studio仍在.csproj文件中引用版本2.0 .我希望这可以帮助其他有类似问题的人.