javascript - 如何创建具有一个可选属性的 typescript 泛型类型?

标签 javascript reactjs typescript

我正在使用 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'
  }]
}

Typescript playground

关于javascript - 如何创建具有一个可选属性的 typescript 泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74431820/

相关文章:

javascript - ionic 闪屏延迟不起作用

javascript - 循环数组和另一个对象中的对象

reactjs - 将配置添加到 package.json 有什么好处?

typescript 引用错误 : exports is not defined

json - 如何在 TypeScript 中迭代 JSON 属性

typescript - 是否应该创建一个名为 _this 的变量与此冲突?

javascript - 如果等于特定文本,则在页面上显示图像

javascript - JS 和 AJAX Uncaught ReferenceError

validation - 如何实现基于多字段的redux表单验证?

javascript - react setstate接受的对象在setInterval和onClick中是不同的