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