私はループバック3でFireloopを使用しており、型チェック付きPersistedModel
とValidatable
メソッドを使用して型保証付きフックとリモートメソッドを作成する方法を知りたいと考えています。私はPersistedModelがタイプチェックの使い方Loopback/Fireloop PersistedModel
this.model.count().then((n) => ...);
のような呼び出しをしたいのですが
constructor(public model: any) { }
に...
constructor(public model: SomeType) { }
...からのコンストラクタの種類を変更したいのですが
などの確認可能な通話:
model.validatesLengthOf('code', {
min: 6, max: 12, message: { min: 'too short', max: 'too long'}
});
以下のようなFireloopの例では、this.model
としてany
を使用しています。 firestarter model samplesとFireloopのドキュメントもここでは役に立たなかった。
ModelConstructor
というタイプがfireloopソースツリーでcore/index.d.tsの下に宣言されています。このインターフェイスは、PersistedModel
とValidatable
のすべてのメソッドを実装していますが、npmjsでどこに公開されているので正しく表示されますか?それは既にFireloopサーバーSDKの一部ですか、それともnpm install
にする必要がありますか?いい考えはありません。
import { Model } from '@mean-expert/model';
/**
* @module Account
* @description
* Write a useful Account Model description.
* Register hooks and remote methods within the
* Model Decorator
**/
@Model({
hooks: {
beforeSave: { name: 'before save', type: 'operation' }
},
remotes: {
myRemote: {
returns: { arg: 'result', type: 'array' },
http: { path: '/my-remote', verb: 'get' }
}
}
})
class Account {
// LoopBack model instance is injected in constructor
constructor(public model: any) { }
// Example Operation Hook
beforeSave(ctx: any, next: Function): void {
console.log('Account: Before Save', ctx.instance);
next();
}
// Example Remote Method
myRemote(next: Function): void {
this.model.find(next);
}
}
module.exports = Account;
Finiallyは、私はまた、Loopback 3 Typescript definitionsを使用しようとしましたが、ここではすべてのように型チェックに失敗し、Promise<T> | void
を返すstaticとして宣言されているPersistedModel方法など多くの問題をヒットしました。後者の場合は、入力を強制的に入力して結果をPromise<T>
に戻すことを意味するので、タイプ定義者が実際に使用したことがないようです。これはバグですか、何か不足していますか?そうでない場合には、実例を見つけることができません。
これはサーバー側のAPIの痛みです。クライアント側のFireloop用REST APIもドキュメント化されていません(Real-time APIの多くの例)が含まれているはずのREST APIはありません。 Typescriptですべての型をチェックすることができます。