如何解决Typescript接口类型变量,在数组中实现
O(1)
稍后,在我的组件中,如何为每个数组元素提供不同的类型变量?
interface MyObjectInterface<T> {
aProp: keyof T;
}
解决方法
我认为您的意思是希望有一个类型为Dang2!
的值数组,每个值都有一个任意的MyObjectInterface<T>
,然后将整个数组键入为T
。
这不是它的工作方式。当您定义类型MyObjectInterface[]
时,该类型不是MyObjectInterface<T>
,因为它具有通用参数,从而增加了质量。类型为是 MyObjectInterface
。类型由通用参数本身固有地定义。 MyObjectInterface<T>
和MyObjectInterface<string>
是不是相同类型的不同版本;它们是不同的类型。
您可以执行的操作不是将数组键入不是有效类型的MyObjectInterface<number>
,而是键入MyObjectInterface[]
或MyObjectInterface<unknown>[]
。这将允许使用任意MyObjectInterface<any>
键入数组的项,因为根据定义,任何T
都将满足T
或unknown
。
但是请记住,执行此操作会将数组中的每个项目都转换为any
或MyObjectInterface<unknown>
,从而使您丢失每个项目的更具体的类型信息。使用MyObjectInterface<any>
将使您可以引用类型any
的值,而无需实际知道T
是什么。相反,您可能应该使用T
,这将使您在引用这些值之前先检查unknown
是什么。从您的问题出发,我认为这可能是您正在寻找的东西,但是您应该考虑哪些实际上适合您的特定用例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。