【问题标题】:how to declare variable with special type in Typescript如何在 Typescript 中声明具有特殊类型的变量
【发布时间】:2018-08-23 11:52:55
【问题描述】:

我正在加载一个 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 无法识别“?”在“活着?”

有什么建议吗?

【问题讨论】:

    标签: json angular typescript


    【解决方案1】:

    如果属性名称中包含特殊字符,则需要放入''

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

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

    要访问该属性,您需要使用person['alive?']

    【讨论】:

    • 我尝试将其称为 {{people.alive?}},但它给出了这个错误“解析器错误:表达式意外结束:{{People.alive?}}”
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 2022-11-25
      • 2021-07-20
      • 1970-01-01
      • 2016-12-23
      相关资源
      最近更新 更多