小编Ema*_*u a的帖子

在打字稿中定义多个映射类型?

假设我有以下打字稿代码:

type fruit = "apple" | "banana" | "pear"
type color = "red" | "yellow" | "green"
Run Code Online (Sandbox Code Playgroud)

我想创建一个类型,该类型具有每种水果的数字属性和每种颜色的布尔属性,例如

type FruitsAndColors = {
  [key in fruit]: number;
  [key in color]: boolean
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,此错误并显示消息“映射类型可能无法声明属性或方法”,但它可以正常编译。这里到底发生了什么?

我可以用类似的方法来解决这个问题

type FruitsAndColors = {
  [key in fruit]: number;
} & {
  [key in color]: boolean
}
Run Code Online (Sandbox Code Playgroud)

但我想知道真正的问题是什么。

types typescript

9
推荐指数
2
解决办法
2816
查看次数

检查多维数组是否包含另一个多维数组的算法?

假设我有两个深度相等的多维数组,例如:

[ [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9] ]
Run Code Online (Sandbox Code Playgroud)

[ [2, 3],
  [5, 6] ]
Run Code Online (Sandbox Code Playgroud)

我可以遵循什么样的算法来确定后者是否是前者的连续子数组?

以上面的例子为例,就是:

在此输入图像描述

还有这对 3d 数组:

[ [ [4, 6],
    [5, 7] ],
  [ [2, 8],
    [9, 3] ] ]

[ [ [4, 6] ],
  [ [2, 8] ] ]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一种解释方法是,通过重复从第一个数组的某个维度中删除第一个或最后一个项目,您最终将获得目标数组。

language-agnostic arrays algorithm multidimensional-array

5
推荐指数
1
解决办法
132
查看次数