安装蓝图时,环境上下文错误中不允许初始化程序
Initializers are not allowed in ambient contexts error when installing Blueprint
我正在尝试在我的项目中使用 @blueprintjs/core
库。但是,当我编译我的代码时,我遇到了很多这样的错误:
node_modules/@blueprintjs/core/dist/common/classes.d.ts(4,30):
error TS1039: Initializers are not allowed in ambient contexts.
这是怎么回事?我做错了什么?
从 @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 编译项目。
我遇到了这个问题,但对我来说,更新本地(和全局)TypeScript 包没有 解决了问题。幸运的是我看到了下面的文章Which version of TypeScript is Visual Studio Using?
简而言之,当我更新到 TypeScript 2.2 时,Visual Studio 仍在 .csproj
文件中引用 2.0 版。我希望这可以帮助遇到类似问题的其他人。
对于 windows,要解决此问题,最短路径是通过安装程序安装 Typescript。
https://www.microsoft.com/en-us/download/details.aspx?id=48593
删除您的节点模块文件夹并进行全新安装。
This error is because of node older version of node
您可以删除节点版本并使用以下命令重新安装它
rm -rf node_modules //For removing
npm install //Install again(Fresh with updated one)
我一直遇到这个问题。需要从打字稿网站下载最新版本的打字稿,并确保在 visual studio 项目属性中选择 'use latest version'。
将打字稿至少升级到 3.1+。
首先使用 typescript version:3.6.4 更新 package.json 并执行命令 npm i
问题是您在 d.ts
文件中编写代码。
您应该只在这些 "ambient" 文件中编写类型。诸如初始化变量、编写函数等不应在 "ambient" 文件中完成。
我在与 blueprint.js 不同的库中遇到了同样的问题,导致 ts 编译器抛出“环境上下文中不允许初始化程序”,index.d.ts
文件如下所示:
declare var identikon_cljs = require('identikon_cljs');
在 tsconfig.json 中添加这些属性或将这些属性设置为 true 后,我能够编译它:
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"skipLibCheck": true
}
}
我正在尝试在我的项目中使用 @blueprintjs/core
库。但是,当我编译我的代码时,我遇到了很多这样的错误:
node_modules/@blueprintjs/core/dist/common/classes.d.ts(4,30):
error TS1039: Initializers are not allowed in ambient contexts.
这是怎么回事?我做错了什么?
从 @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 编译项目。
我遇到了这个问题,但对我来说,更新本地(和全局)TypeScript 包没有 解决了问题。幸运的是我看到了下面的文章Which version of TypeScript is Visual Studio Using?
简而言之,当我更新到 TypeScript 2.2 时,Visual Studio 仍在 .csproj
文件中引用 2.0 版。我希望这可以帮助遇到类似问题的其他人。
对于 windows,要解决此问题,最短路径是通过安装程序安装 Typescript。
https://www.microsoft.com/en-us/download/details.aspx?id=48593
删除您的节点模块文件夹并进行全新安装。
This error is because of node older version of node
您可以删除节点版本并使用以下命令重新安装它
rm -rf node_modules //For removing
npm install //Install again(Fresh with updated one)
我一直遇到这个问题。需要从打字稿网站下载最新版本的打字稿,并确保在 visual studio 项目属性中选择 'use latest version'。
将打字稿至少升级到 3.1+。
首先使用 typescript version:3.6.4 更新 package.json 并执行命令 npm i
问题是您在 d.ts
文件中编写代码。
您应该只在这些 "ambient" 文件中编写类型。诸如初始化变量、编写函数等不应在 "ambient" 文件中完成。
我在与 blueprint.js 不同的库中遇到了同样的问题,导致 ts 编译器抛出“环境上下文中不允许初始化程序”,index.d.ts
文件如下所示:
declare var identikon_cljs = require('identikon_cljs');
在 tsconfig.json 中添加这些属性或将这些属性设置为 true 后,我能够编译它:
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"skipLibCheck": true
}
}