簡體   English   中英

如何使用打字稿定義具有不同字段的對象?

[英]How can I define an object to have different fields using typescript?

我有以下功能:

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

在另一個文件中,我像這樣使用這個函數:

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

有沒有辦法可以使用智能感知,以便 params 對象顯示為具有“成功”參數? 我看到 Typescript 有類和接口,但我不確定如何或是否可以將它們用作返回類型。

如果將 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).

getAdminParams您可以將params顯式聲明為新的IParams ,但類型推斷將為您設置智能感知,即使您不這樣做,只要您分配給params對象的屬性滿足IParams接口中指定的IParams

當然,您的返回類型可以是一個類、一個字符串或任何其他類型,您可以以同樣的方式使用function f(): returnType語法聲明它。

語言規范非常詳細地涵蓋了所有這些,或者這里有一個簡短的介紹: http : //www.codeproject.com/Articles/469280/An-introduction-to-Type-Script或類似的 SO 問題在這里: How在 TypeScript 中聲明函數的返回類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM