Initializers are not allowed in ambient contexts e

2020-01-29 09:50发布

I'm trying to use the @blueprintjs/core library in my project. However, when I compile my code, I'm getting many errors like this:

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

What's going on? What am I doing wrong?

9条回答
趁早两清
2楼-- · 2020-01-29 10:00

first update package.json with typescript version:3.6.4 and execute command npm i

查看更多
祖国的老花朵
3楼-- · 2020-01-29 10:01

As of @blueprintjs/core@1.7.0, Blueprint is now compiled using TypeScript 2.1. With this new version of TypeScript, initializers are added to the emitted typings for constants.

So before, a line of the emitted classes.d.ts looked like this:

export declare const ACTIVE: string;

It now looks like this and includes an initializer:

export declare const ACTIVE = "pt-active";

This new syntax in declaration files makes old versions of the compiler unhappy. To make the error go away, you'll need to make sure you're compiling your project with at least TypeScript 2.1.

查看更多
萌系小妹纸
4楼-- · 2020-01-29 10:01

I had this problem, but for me, updating the local (and global) TypeScript packages did not resolve the problem. Luckily I came across the following article Which version of TypeScript is Visual Studio Using?

In a nutshell, whilst I had updated to TypeScript 2.2, Visual Studio was still referencing version 2.0 in the .csproj file. I hope this helps someone else with a similar problem.

查看更多
放荡不羁爱自由
5楼-- · 2020-01-29 10:03

I've been having this issue. Needed to download the latest version of typescript from typescript website and make sure 'use latest version' is selected in visual studio project properties.

查看更多
Rolldiameter
6楼-- · 2020-01-29 10:09

For windows, to resolve this issue the shortest path is to install Typescript through installer.

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

查看更多
唯我独甜
7楼-- · 2020-01-29 10:14

The problem is that you are writing code in a d.ts file. You should only be writing types in these "ambient" files. Things like initializing variables, writing functions, etc should not be done in "ambient" files.

查看更多
登录 后发表回答