如何在Typescript中声明具有特殊类型的变量

时间:2018-03-14 19:41:10

标签: json angular typescript

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

我的问题是该人不承认“?”在“活着?”

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

如果属性名称包含特殊字符,则需要将其放在''

export interface People{
    name: string
    age: number
    'alive?': boolean
}

注意 alive?: boolean是有效的语法,但这意味着名为alive的属性是可选的,而不是属性名为alive?

要访问该媒体资源,您需要使用person['alive?']

答案 1 :(得分:1)

要添加@Titan所说的内容,您还应该知道,通过选择在属性名称中使用特殊字符,您将需要使用括号表示法 ["alive?"]来访问该属性值。