【发布时间】:2023-02-05 23:14:45
【问题描述】:
我试图弄清楚如何定义一种类型的数组,其中包含对象数组和数组或对象键作为元素:
export type iFormInputTest = {
name: string
type: 'textInput' | 'Select'
}
export type iFormInputsTest= {
button: {
label: string
style?: { [key: string]: any }
}
data: iFormInputTest[] | iFormInputTest[][]
}
const inputs: iFormInputsTest = {
button: {
label: 'Submit'
},
data: [
{
name: 'input1',
type: 'textInput'
},
[
{
name: 'input2',
type: 'textInput'
},
{
name: 'input3',
type: 'Select'
}
],
{
name: 'input1',
type: 'textInput'
}
]}
这是我得到的类型错误:
输入'{ 按钮:{ 标签:字符串;样式:{ marginTop:数字; }; }; 数据:({ 类型:“文本”;名称:字符串;标签:DefaultTFuncReturn; 默认值:字符串;验证:RequiredStringSchema<string | 未定义,任何对象>; }[] | { ...; } | { ...; } | { ...; } | { ...; })[]; }' 不可分配给类型 'iFormInputs'。财产类型 “数据”不兼容。 输入 '({ type: "text"; name: string; label: DefaultTFuncReturn; defaultValue: string; validation: RequiredStringSchema<string | 未定义,任何对象>; }[] | { ...; } | { ...; } | { ...; } | { ...; })[]' 不可分配给类型 'iFormInput[] | iFormInput[][]'。 输入 '({ type: "text"; name: string; label: DefaultTFuncReturn; defaultValue: string; validation: RequiredStringSchema<string | 未定义,任何对象>; }[] | { ...; } | { ...; } | { ...; } | { ...; })[]' 不可分配给类型 'iFormInput[]'。 输入'{类型:“文本”;名称:字符串;标签:DefaultTFuncReturn;默认值:字符串;验证:RequiredStringSchema<string | 未定义,任何对象>; }[] | { ...; } | { ...; } | { ...; } | { ...; }' 不可分配给类型 'iFormInput'。 输入'{类型:“文本”;名称:字符串;标签:DefaultTFuncReturn;默认值:字符串;验证: RequiredStringSchema<字符串 |未定义,任何对象>; }[]' 不见了 来自类型“iFormInput”的以下属性:名称、类型
我尝试了所有方法,但无法找到一种方法来定义
data键同时包含iFormInputTest对象数组和iFormInputTest递归数组
【问题讨论】:
标签: typescript