首页 > 解决方案 > 将已知形状但大小未知的数组传递给组件?

问题描述

我是打字稿的新手。目前,我正在尝试将带有名称的道具传递items给 React 组件。

items长度未知但形状已知:

items = [
    [string, (unknown) => unknown],
    [string, (unknown) => unknown],
    [string, (unknown) => unknown],
    ...
]

该组件是一个简单的手风琴组件,应该是可重用的。每个数组中的第一个元素描述应呈现的标题,函数描述应在单击时触发的动作。由于这是一个可重用的组件,该组件应该接受任何带有任意参数和返回值的操作。

这在 JS 中非常简单,但我无法理解如何在 TS 中指定类型?有人可以帮助或指出我正确的方向吗?

更新以供将来参考:
此解决方案可以完成工作。
-1 :将项目定义为一个 Array 数组。
-2:将内部数组定义为一个 touple(具有固定数量元素的数组。-3
:将函数定义为包含任意数量的参数和返回<any>值。

interface Props {
    title: string,
    items: Array<[string, (...args: any) => any]>,
}

标签: reactjstypescript

解决方案


将您的形状定义为类型:

type Type = [string, (arg0: any) => any];
let items: Array<Type> = [];

推荐阅读