1

私は次の機能を持っています:

function getAdminParams(entity) {
   params = {};
   params = {
                pk: "0006000",
                param: "?pk=0006000",
                table: "Content",
                success: true
            };
  return params;
}

別のファイルでは、この関数を次のように使用します。

params = getAdminParams(entity);
    if (params.success) {

params オブジェクトが「成功」パラメーターを持つように表示されるように、インテリセンスを使用できる方法はありますか? Typescript にはクラスとインターフェイスがあることがわかりましたが、これらを戻り値の型として使用できるかどうか、またはどのように使用できるかはわかりません。

4

1 に答える 1

2

params をインターフェイスとして定義すると、関数の括弧の後にコロンを使用して、それを の戻り値の型として宣言できますgetAdminParams()。このような:

interface IParams {
    success: bool;
    pk: string;
    // etc...
}

function getAdminParams(entity): IParams {
    params = {
                pk: "0006000",
                success: true
                // etc...
            };
    return params; // If the properties assigned do not fulfill the IParams interface, this will be marked as an error.
}

params = getAdminParams(entity);
if (params. // Intellisense should offer success and pk and any other properties of IParams).

内部では明示的に new としてgetAdminParams宣言できますが、オブジェクトに割り当てたプロパティがインターフェイスで指定されたコントラクトを満たしている限り、そうしなくても型推論によって Intellisense が設定されます。paramsIParamsparamsIParams

もちろん、戻り値の型はクラス、文字列、またはその他の型である可能性がありfunction f(): returnType、同じ方法で構文を使用して宣言します。

言語仕様はこれらすべてを詳細にカバーしているか、ここに短い紹介があります: http://www.codeproject.com/Articles/469280/An-introduction-to-Type-Scriptまたは同様の SO の質問: How TypeScript で関数の戻り値の型を宣言する

于 2012-11-11T11:34:43.553 に答える