Typescriptはオブジェクトのすべてのフィールドを任意にするのに役立つPartial<Object>
タイプです。私は活字体のインタフェースを介して説明した同期APIを持って約束事へのインタフェースでフィールドタイプを置換
interface PromisifyPerson {
getName(): Promise<string>;
getAge(): Promise<number>;
}
:
interface Person {
getName(): string;
getAge(): number;
}
へ:
からPerson
タイプを変更しますジェネリック型
Promisify<Person>
を作成するのと同じ方法で、それは可能です私の目標は、私が持っているすべてのインターフェースを書き直さずに非同期バージョンのAPIを作成することです。私はそれはいくつかの仕事を取るかもしれませんが、あなたは、それを作成することができます確信している
interface AsyncApplicationApi {
startApp(): Promise<void>;
readFile(fileName): Promise<string>;
}
プロミスにローカル値をラップしたいのはなぜですか?それは何の理由もない余分のオーバーヘッドを追加します。 –
私は、Typescriptインターフェースを介して記述されたAPIを持っています。これはデスクトップアプリケーション用のAPIであり、ほぼすべてのメソッドが同期しています。今私は、このAPIのためのリモートクライアントを作成する必要があり、私はすでに既存のインターフェイスを再利用したい。しかし、リモートクライアントは非同期的にAPIを呼び出します。ですから、私は同期APIのインターフェイスを非同期のものに変換することを考えます。タイプAsyncApplicationAPI = Async ' –
私はなぜあなたが各*プロパティの代わりにAPI呼び出しのすべての値を返さないのか混乱していると思います*(私はこの人の名前をajaxで得ることができます...今度は同じ人の年齢を別のAjax呼び出しで得ることができます)。なぜ私は人が必要な場合は、 '約束 '? –