Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular 8 and importing Json

I have read a few articles stating you can now import json directly since type script 2.9. So I have amended my tsconfig.json file as follows:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  },
  "paths": {
    "@data/*": ["src/core/data/*"],
    "@models/*": ["src/core/models/*"],
    "@services/*": ["src/core/*"],
    "@environments/*": ["src/environments/*"]
  },
  "resolveJsonModule": true,
  "esModuleInterop": true,
  "allowSyntheticDefaultImports": true
}

And then I imported the json into my component like this:

import particlesJson from '../../assets/particles.json';

It runs fine, but I get an error in the console:

ERROR in src/app/profile/login.component.ts(3,27): error TS2732: Cannot find module '../../assets/particles.json'. Consider using '--resolveJsonModule' to import module with '.json' extension

How can I stop that error from appearing?

like image 562
r3plica Avatar asked Aug 20 '19 13:08

r3plica


3 Answers

"resolveJsonModule": true,
"esModuleInterop": true,

should be placed under compilerOptions in tsconfig.json, as per documentation.
See the example here.

like image 62
LppEdd Avatar answered Nov 20 '22 16:11

LppEdd


In my case the good old commputer science approach worked, just restart Visual Studio Code.

like image 40
Viree Avatar answered Nov 20 '22 18:11

Viree


Even using LppEdd solution which is the docs. The only solution for me was to add // @ts-ignore The I was able to get json file successfully.

Version: 8

like image 1
Juliano Avatar answered Nov 20 '22 16:11

Juliano