Javascript 错误TS2339:属性';默认值';不存在于类型';特别[]和#x27;
我正在用Angular编写一个应用程序。我正在使用json文件,从ts文件中获取数据:Javascript 错误TS2339:属性';默认值';不存在于类型';特别[]和#x27;,javascript,json,angular,typescript,compiler-errors,Javascript,Json,Angular,Typescript,Compiler Errors,我正在用Angular编写一个应用程序。我正在使用json文件,从ts文件中获取数据: import * as data from '../../special.json'; export class SpecialComponent { specials = (data as any).default; } 一切都很好。但当我想添加类型而不是任何类型时: import * as data from '../../special.json'; export class SpecialCom
import * as data from '../../special.json';
export class SpecialComponent {
specials = (data as any).default;
}
一切都很好。但当我想添加类型而不是任何类型时:
import * as data from '../../special.json';
export class SpecialComponent {
specials = (data as Special[]).default;
}
我得到一个错误:
error TS2339: Property 'default' does not exist on type 'Special[]'.
这是我的服务接口:
export interface Special {
category: string;
name: string;
description: string;
type?: string;
imageUrl?: string;
}
这是我的json文件:
[
{
"category": "xxx",
"name": "xxx",
"description": "xxx",
"type": "xxx",
"imageUrl": [
"assets/img/img.jpg",
"assets/img/img1.jpg"
]
}
]
错误是正确的,因为在
特殊[]
上没有默认值
一种简单的方法是:
将resolveJsonModule
和esModuleInterop
放入项目的tsconfig.json
文件中
"compilerOptions": {
"resolveJsonModule": true,
"esModuleInterop": true,
....
}
然后导入:
import {default as data} from '../../special.json';
export class SpecialComponent {
specials = data as Special[];
}
尝试使用HttpClient
读取json文件,而不是导入它?如果您试图访问数组的属性default
,请尝试首先记录数据的内容。如何记录数据的内容?@Weronika:Tryconsole.log(data)
来记录并查看