如何在TypeScript中声明特殊类型的变量

3
我正在加载一个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())
}
}

我的问题是Person无法识别"alive?"中的"?"。有什么建议吗?
2个回答

3
如果属性名称包含特殊字符,则需要将其放在''中。
export interface People{
    name: string
    age: number
    'alive?': boolean
}
注意alive?: boolean 是有效的语法,但它意味着名为 alive 的属性是可选的,而不是该属性名为 alive?
要访问该属性,需要使用 person['alive?']

我试图调用它{{people.alive?}},但是它报错了“解析器错误:表达式意外结束:{{People.alive?}}” - Juliano Carvalho

1
补充@Titan所说的,你还应该知道,如果在属性名称中使用特殊字符,则需要使用括号表示法 ["alive?"] 来访问该属性的值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接