fre*_*aso 4 knockout.js single-page-application typescript breeze
我正在使用Breeze + Typescript + Knockout进行Spa,我面临以下问题:当我使用EntityManager.createEntity创建一个新实体时,typescript不允许我使用Breeze从元数据生成的observable.Typescript只"看到""entityAspect"和"entityType"属性.我正在使用DefinitelyTyped的类型定义.任何帮助是极大的赞赏!
您可以为您的类型创建一个扩展的接口breeze.Entity:
/// <reference path="breeze.d.ts" />
module model {
export interface ResponsesItem extends breeze.Entity {
ContentTypeID: string;
Title: string;
Description: string;
EventDate: any;
/* etc. */
}
}
Run Code Online (Sandbox Code Playgroud)
然后,只要您需要以类型化方式使用它们,就可以将对象强制转换为此接口,例如从服务器加载时的查询结果:
private loadResponses(): void {
this.dataservice.ListResponses()
.then((data: { results: breeze.Entity[]; query: breeze.EntityQuery; XHR: XMLHttpRequest; }) => {
var results: model.ResponsesItem[] = <model.ResponsesItem[]>data.results;
// Do something with typed results array here.
}).fail((error) => {
this.handleDataError(error);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1870 次 |
| 最近记录: |