Angular 8 / Typescript在调用数据时设置接口的属性
Posted
技术标签:
【中文标题】Angular 8 / Typescript在调用数据时设置接口的属性【英文标题】:Angular 8 / Typescript set Property of Interface when calling data 【发布时间】:2020-06-25 16:50:07 【问题描述】:所以我用角度来称呼它
savePat(obj: PatientData): Observable<IJsonSaveResult>
return this.http.post<IJsonSaveResult>(`$environment.serviceUrl/patients/addpatient`, obj);
我的 IJsonSaveResult 是
export interface IJsonSaveResult
success: boolean;
errors: any[];
resultSet: any;
resultSet 可以是任何东西,但我想输入类似于 .Net Generics 的类型
savePat(obj: PatientData): Observable<IJsonSaveResult(PatientData)>
return this.http.post<IJsonSaveResult>(`$environment.serviceUrl/patients/addpatient`, obj);
有什么想法吗?
【问题讨论】:
【参考方案1】:如果我理解正确,你可以这样做:
export interface IJsonSaveResult<T>
success: boolean;
errors: any[];
resultSet: T[];
然后:
savePat(obj: PatientData): Observable<IJsonSaveResult<PatientData>>
return this.http.post<IJsonSaveResult<PatientData>>(`$environment.serviceUrl/patients/addpatient`, obj);
【讨论】:
【参考方案2】:Typescript 泛型与 C# 泛型非常相似(不足为奇,因为 Microsoft 落后于 Typescript)。
您可以将resultSet
的类型声明为IJsonSaveResult
接口上的通用参数:
export interface IJsonSaveResult<TResultSet>
success: boolean;
errors: any[];
resultSet: TResultSet;
然后这样称呼它:
savePat(obj: PatientData): Observable<IJsonSaveResult<PatientData>>
const url = `$environment.serviceUrl/patients/addpatient`;
return this.http.post<IJsonSaveResult<PatientData>>(url, obj);
【讨论】:
我尽可能避免使用 Angular Material。祝你好运!以上是关于Angular 8 / Typescript在调用数据时设置接口的属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Angular 5 中从 Typescript 调用 JavaScript 函数?
Typescript/Angular - 模态结果返回后调用单独的函数
Angular 8 Native Typescript 无崩溃,访问器简写