Breezejs 打字稿承诺在定义文件中没有失败方法
Breezejs typescript promise has no fail method in definition file
我正在做一个项目,我正在使用 breezejs 与我的 webapi 对话。
我已经设置了一个简单的注册表单,我可以用它来注册一个新用户:
public addUser(user: IApiUser): void {
this.dataContext.entityManager.addEntity(this.dataContext.entityManager.createEntity("ApiUserEntity", user));
}
为了将添加的实体写入 webapi,我在 breezejs 的实体管理器上调用了 saveChanges() 方法:
// Save any changes for this datacontext
return this.dataContext.entityManager.saveChanges().then((saveResult: breeze.SaveResult): breeze.SaveResult => {
return saveResult;
});
我已经从 here 下载了 breezejs 的 typescript 定义文件
,但查看 saveChanges 签名:
saveChanges(entities?: Entity[], saveOptions?: SaveOptions, callback?: SaveChangesSuccessCallback, errorCallback?: SaveChangesErrorCallback): breeze.promises.IPromise<SaveResult>;
它 returns 类型的承诺:
breeze.promises.IPromise<SaveResult>;
现在,当我检查定义文件中的 IPromise 时,我得到以下界面:
interface IPromise<T> {
then<U>(onFulfill: (value: T) => U, onReject?: (reason: any) => U): IPromise<U>;
then<U>(onFulfill: (value: T) => IPromise<U>, onReject?: (reason: any) => U): IPromise<U>;
then<U>(onFulfill: (value: T) => U, onReject?: (reason: any) => IPromise<U>): IPromise<U>;
then<U>(onFulfill: (value: T) => IPromise<U>, onReject?: (reason: any) => IPromise<U>): IPromise<U>;
catch<U>(onRejected: (reason: any) => U): IPromise<U>;
catch<U>(onRejected: (reason: any) => IPromise<U>): IPromise<U>;
finally(finallyCallback: () => any): IPromise<T>;
}
而且我只是不明白他们为什么选择这样实施它。我正在使用 Q.js 库,它有一个 fail 和一个 .done 方法等,但是如果我输入这些,我的打字稿文件将无法编译,因为接口无法识别这些方法。
我用 Q.js 寻找了 breeze 的特定定义文件,但它们似乎不存在。当然我可以编辑定义文件,但我想知道为什么要这样设置它。
我正在做一个项目,我正在使用 breezejs 与我的 webapi 对话。 我已经设置了一个简单的注册表单,我可以用它来注册一个新用户:
public addUser(user: IApiUser): void {
this.dataContext.entityManager.addEntity(this.dataContext.entityManager.createEntity("ApiUserEntity", user));
}
为了将添加的实体写入 webapi,我在 breezejs 的实体管理器上调用了 saveChanges() 方法:
// Save any changes for this datacontext
return this.dataContext.entityManager.saveChanges().then((saveResult: breeze.SaveResult): breeze.SaveResult => {
return saveResult;
});
我已经从 here 下载了 breezejs 的 typescript 定义文件 ,但查看 saveChanges 签名:
saveChanges(entities?: Entity[], saveOptions?: SaveOptions, callback?: SaveChangesSuccessCallback, errorCallback?: SaveChangesErrorCallback): breeze.promises.IPromise<SaveResult>;
它 returns 类型的承诺:
breeze.promises.IPromise<SaveResult>;
现在,当我检查定义文件中的 IPromise 时,我得到以下界面:
interface IPromise<T> {
then<U>(onFulfill: (value: T) => U, onReject?: (reason: any) => U): IPromise<U>;
then<U>(onFulfill: (value: T) => IPromise<U>, onReject?: (reason: any) => U): IPromise<U>;
then<U>(onFulfill: (value: T) => U, onReject?: (reason: any) => IPromise<U>): IPromise<U>;
then<U>(onFulfill: (value: T) => IPromise<U>, onReject?: (reason: any) => IPromise<U>): IPromise<U>;
catch<U>(onRejected: (reason: any) => U): IPromise<U>;
catch<U>(onRejected: (reason: any) => IPromise<U>): IPromise<U>;
finally(finallyCallback: () => any): IPromise<T>;
}
而且我只是不明白他们为什么选择这样实施它。我正在使用 Q.js 库,它有一个 fail 和一个 .done 方法等,但是如果我输入这些,我的打字稿文件将无法编译,因为接口无法识别这些方法。
我用 Q.js 寻找了 breeze 的特定定义文件,但它们似乎不存在。当然我可以编辑定义文件,但我想知道为什么要这样设置它。