I am trying to import json file in typescript class like that
import * as nationalities from './mock/nationalities.json';
and it gives me an error
Cannot find module './mock/nationalities.json'.
and to solve this issue I added this
declare module '*.json' {
const value: any;
export default value;
}
but it doesn't solve my issue and also gives my another error exception
Invalid module name in augmentation, module '*.json' cannot be found.
My Typescript version
2.9.2
Based on this post, here is complete answer for Angular 6+:
Suppose you added your json files into "json-dir" directory:
add "json-dir" into angular.json file :
"assets": [
"src/assets",
"src/json-dir"
]
allow import of json modules to prevent from typescript errors:
Angular 6: add to typings.d.ts
declare module "*.json" {
const value: any;
export default value;
}
Angular 7+: add to tsconfig.json
"compilerOptions": {
...
"resolveJsonModule": true
}
from your controller, service or anything else, simply import the file by using this absolute path from /src
directory. For example:
import * as myJson from 'absolute/path/to/json/dir/json-file.json';
assuming source files are in
src/app
and json files insrc/absolute/path/to/json/dir