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