我正在加载一个json文件,并且需要这些字段具有相同的名称
export interface People{
name: string
age: number
alive?: boolean
}
json就像这样
{
{
"name": "teste1"
"age": 41
"alive?": true
}
}
加载json
@Injectable()
export class Peoples{
constructor(private http: Http){}
peoples(): Observable<People[]>{
return this.http.get(`${DEEP_API}/people`)
.map(response => response.json())
}
}
我的问题是该人不承认“?”在“活着?”
有什么建议吗?
答案 0 :(得分:3)
如果属性名称包含特殊字符,则需要将其放在''
export interface People{
name: string
age: number
'alive?': boolean
}
注意 alive?: boolean
是有效的语法,但这意味着名为alive
的属性是可选的,而不是属性名为alive?
要访问该媒体资源,您需要使用person['alive?']
答案 1 :(得分:1)
要添加@Titan所说的内容,您还应该知道,通过选择在属性名称中使用特殊字符,您将需要使用括号表示法 ["alive?"]
来访问该属性值。