我是打字稿新手,我想从 JS 翻译以下结构:
{
data: [
'str', {
func_1: () => 1,
func_2: () => 1
},
'str-1', /* no attached functions */
'str-2', { func_2: () => 1 },
'str-3', /* no attached functions. */
...
],
...
}
我的想法是
data
数组将由可变数量的元组组成,其中第一个参数是一个字符串,第二个(可选)参数将是一个对象,带有在其之前调用字符串的函数.
这种方法有什么本质上的错误吗?我一直在尝试使用
tupples
,Records
似乎不是一个选择,而 nullables
我只是还没有把注意力集中在泛型类型上,但无论如何我最终都会得到嵌套我不太满意的数组或对象。
谢谢
您应该添加数组语法来创建元组,数据的类型可能如下所示:
type Obj = {
data: [string, functions?: Record<`func_${number}`, () => number>][];
}
const obj = {
data: [
['str', {
func_1: () => 1,
func_2: () => 1
}],
['str-1'], /* no attached functions */
['str-2', { func_2: () => 1 }],
['str-3'], /* no attached functions. */
],
} as const satisfies Obj