27

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

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

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

4

10 回答 10

23

从 开始@blueprintjs/core@1.7.0,蓝图现在使用 TypeScript 2.1 编译。在这个新版本的 TypeScript 中,初始化器被添加到为常量发出的类型中。

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

export declare const ACTIVE: string;

它现在看起来像这样并包含一个初始化程序:

export declare const ACTIVE = "pt-active";

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

于 2017-02-17T15:07:53.343 回答
10

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

于 2019-12-17T03:48:00.227 回答
6

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

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

于 2017-05-14T12:05:06.993 回答
2

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

于 2017-06-16T11:26:45.830 回答
2

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

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

于 2017-05-26T09:20:32.270 回答
2

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

declare var identikon_cljs = require('identikon_cljs');

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

{
    "compilerOptions": {
        "allowJs": true,
        "allowSyntheticDefaultImports": true,
        "skipLibCheck": true
    }
}
于 2021-05-21T22:28:05.943 回答
1

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

于 2019-03-06T12:16:01.247 回答
0

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

于 2019-04-23T18:58:30.213 回答
-1

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

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

rm -rf node_modules //For removing
npm install //Install again(Fresh with updated one)
于 2019-01-25T19:10:17.980 回答
-3

首先使用 typescript version:3.6.4 更新 package.json 并执行命令 npm i

于 2019-10-14T15:18:47.693 回答