错误 - 不应导入指定的导出

six*_*six 7 typescript angular angular12

我已将 Angular 项目更新为版本 12.0.5,将 Typescript 版本更新为 4.3.4,但在编译该项目时遇到问题。

目前,我在没有对分支进行更改的情况下收到以下错误:

Should not import the named export 'provinces' (imported as 'data') from default-exporting module (only default export is available soon)
Run Code Online (Sandbox Code Playgroud)

这是import

import { ApiService, Municipality, Province } from '../../services/api.service';
Run Code Online (Sandbox Code Playgroud)

这就是我声明依赖于导入省份的变量的方式:

public provinces: Province[] = [];
  private currentPorvince: Province;
Run Code Online (Sandbox Code Playgroud)

问题是什么?为什么会发生这种情况以及如何解决?

小智 10

使用中间变量似乎对 Angular 12.2.5 有用:

import * as data from 'path/to/file.json'

let intermediateJson = data
//make it crash: console.log(data.property)
console.log(intermediateJson.property)
Run Code Online (Sandbox Code Playgroud)


Sha*_*tha 9

我能够按照此处概述的步骤解决此问题: https: //www.codegrepper.com/code-examples/javascript/read+json+file+in+typescript(这又引用了 SO 帖子:导入 JSON 文件在打字稿中

基本上,您必须将以下内容添加到 tsconfig.json 文件中(我将其添加到我的根 tsconfig.json 文件中,因为其他所有内容都继承自它):

"resolveJsonModule": true,
"esModuleInterop": true,
Run Code Online (Sandbox Code Playgroud)

然后你可以使用默认导入来命名类:

import { default as data } from '../../services/api.service';
data.provinces
Run Code Online (Sandbox Code Playgroud)