我正在使用 typescript 进行 react ,我有这个:
interface SomeProps {
stuff: {
optionalStuff?: object[];
}[];
}
这种方法的唯一问题是,如果我尝试在 stuff object[]
内插入除 optionalStuff
之外的任何属性,它将失败,因为这些属性未列出.
我怎样才能做这样的事情:
interface SomeProps {
stuff: {
ACCEPTS_ANY_GENERIC_STUFF_INSIDE: string | number | object | undefined
optionalStuff?: object[];
}[];
}
最佳答案
您可以将 SomeProps
设为通用,这样您就可以指定 stuff
接受哪些其他可选字段。在下面的示例中,除 optionalStuff
之外的 stuff
也采用 foo
字段。
type SomeProps<T> = {
stuff: ({
optionalStuff?: object[];
} & T)[];
}
const arr: SomeProps<{ foo: string }> = {
stuff: [{
optionalStuff: [],
foo: 'abc'
}]
}
关于javascript - 如何创建具有一个可选属性的 typescript 泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74431820/