簡體   English   中英

聲明 object 密鑰的類型

[英]Declare type of a object key

我有一個像這樣的XInterface

export interface XInterface {
    foo: (() => Foo[]) | Foo[],
    bar: string,
    baz: number
}

然后,使用接口聲明一個 object 我想foo的類型是Foo[] ,比如

const myObj: XInterface = {
    [myFoo1, myFoo2],
    'bar',
    1
}

但是由於我已經在使用:來聲明我的 Foo 數組,所以我不知道如何確保 foo 是一個數組,而不是返回數組的 function。

我怎樣才能做到這一點?

這是我會遵循的模式。 將來,您將把這個 object 傳遞到 XInterface 預期的地方,它不知道 foo 是 function 還是數組。 考慮到這一點,您將始終必須檢查 foo 的內容。 更好的方法是簡單地將 foo 轉換為 function。

您可以像這樣定義 XInterface:

foo: Foo[],
bar: string,
baz: int

假設你有一個 function

someFuntion(): Foo[] { .....};

所以當你定義你的 object

const myObj: XInterface = {
   foo: someFuntion(),
   bar: 'bar',
   baz: 1
 }

暫無
暫無

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

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