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

时间:2017-02-17 15:07:40

标签: typescript blueprintjs

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

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

发生了什么事?我做错了什么?

10 个答案:

答案 0 :(得分:12)

@blueprintjs/core@1.7.0开始,Blueprint现在使用TypeScript 2.1进行编译。使用这个新版本的TypeScript,初始值设定项被添加到常量的发射类型中。

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

export declare const ACTIVE: string;

现在看起来像这样,并包含一个初始值设定项:

export declare const ACTIVE = "pt-active";

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

答案 1 :(得分:5)

我遇到了这个问题,但对我来说,更新本地(和全局) TypeScript 软件包解决了这个问题。幸运的是,我遇到了以下文章Which version of TypeScript is Visual Studio Using?

简而言之,当我更新到 TypeScript 2.2 时,Visual Studio仍在string query = "SELECT * FROM [?]"; string parameter = string.Format( CultureInfo.InvariantCulture, "{0}$", sheetName); using (OleDbCommand command = new OleDbCommand(query, connection)) { command.Parameters.Add("?", OleDbType.BSTR).Value = parameter; using (OleDbDataAdapter adaptor = new OleDbDataAdapter(command)) { adaptor.Fill(excelTable); } } 文件中引用版本2.0。我希望这可以帮助其他有类似问题的人。

答案 2 :(得分:3)

删除node-modules文件夹并进行全新安装。

答案 3 :(得分:2)

对于Windows,要解决此问题,最短路径是通过安装程序安装Typescript。

https://www.microsoft.com/en-us/download/details.aspx?id=48593

答案 4 :(得分:1)

我一直遇到这个问题。需要从打字稿网站下载打字稿的最新版本,并确保在Visual Studio项目属性中选择了“使用最新版本”。

答案 5 :(得分:1)

我在使用与 blueprint.js 不同的库时遇到了同样的问题,该问题导致 ts 编译器抛出“环境上下文中不允许使用初始化程序”,其中 index.d.ts 文件如下所示:

declare var identikon_cljs = require('identikon_cljs');

在 tsconfig.json 中添加或设置这些属性为 true 后,我能够编译它:

{
    "compilerOptions": {
        "allowJs": true,
        "allowSyntheticDefaultImports": true,
        "skipLibCheck": true
    }
}

答案 6 :(得分:0)

将打字稿升级到至少3.1 +。

答案 7 :(得分:0)

问题在于您正在d.ts文件中编写代码。 您只应在这些“环境”文件中编写类型。诸如初始化变量,编写函数等之类的事情都不应在“环境”文件中完成。

答案 8 :(得分:-1)

  

此错误是由于节点的节点版本较旧

您可以使用以下命令删除节点版本并重新安装

rm -rf node_modules //For removing
npm install //Install again(Fresh with updated one)

答案 9 :(得分:-1)

首先使用打字稿版本:3.6.4更新package.json并执行命令npm i