[英]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.