我想以正确的方式将any
类型的对象转换为符合特定界面的对象,如果没有必要,请ApiResponse
进行适当的错误处理它成为那个对象的属性。类型any
的对象来自JSON有效负载,来自JSON.parse或等效。理想情况下,我也会喜欢处理此转换的正确错误处理。我提出了以下方法,但不确定它是否正确使用TypeScript或利用最佳模式。
答案 0 :(得分:-1)
`
export interface ApiResponse {
code: number
type: string
message: string
}
export function readApiResponse(json: any): ApiResponse {
if (!json.hasOwnProperty('code')) {
throw 'No code property'
}
if (!json.hasOwnProperty('type')) {
throw 'No type property'
}
if (!json.hasOwnProperty('message')) {
throw 'No message property'
}
return json
}
loadData() {
fetch("data.json")
.then(response => response.json())
.then( (json: any) => {
console.log(json)
let r = readApiResponse(json)
console.log(r)
this.setState( {message : r.message })
})
.catch ( (error) => {
console.log(error)
})
}
`