相关疑难解决方法(0)

TypeScript - 固定长度数组<长度>类型?

冒着证明我对TypeScript类型缺乏了解的风险 - 我有以下问题.

当你为这样的数组做一个类型声明时......

position: Array<number>;
Run Code Online (Sandbox Code Playgroud)

...它会让你制作一个任意长度的数组.但是,如果你想要一个包含具有特定长度的数字的数组,即对于x,y,z组件为3,你可以为固定长度的数组创建一个类型,就像这样吗?

position: Array<3>
Run Code Online (Sandbox Code Playgroud)

任何帮助或澄清赞赏!

types typescript

69
推荐指数
6
解决办法
5万
查看次数

打字稿:我可以定义一个n长度的元组类型吗?

我正在使用Typescript创建一个shogi游戏板.将棋盘有9个等级和档案.

我想断言一个9x9多维数组作为一种类型,以确保数组的大小和内容.

目前我正在以这种方式创建我的9x9板类型:

type Board9x9<P> = [
  [P, P, P, P, P, P, P, P, P],
  [P, P, P, P, P, P, P, P, P],
  [P, P, P, P, P, P, P, P, P],
  [P, P, P, P, P, P, P, P, P],
  [P, P, P, P, P, P, P, P, P],
  [P, P, P, P, P, P, P, P, P],
  [P, P, P, P, P, P, P, P, P],
  [P, P, P, P, P, P, P, P, P],
  [P, …
Run Code Online (Sandbox Code Playgroud)

typescript

13
推荐指数
3
解决办法
2861
查看次数

TypeScript:要求两个数组的长度相同?

说我正在做Tab+Panel调用的组件TabsPanels。我想确保我得到了相同数量的TabPanel组件,如下所示:

type TabsPanelsProps = {
  tabs: Tab[];
  panels: Panel[];
}
Run Code Online (Sandbox Code Playgroud)
<TabsPanels
  tabs={[<Tab/>, <Tab/>]}
  panels={[<Panel/>]} // Error: tabs.length and panels.length do not match
/>
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?如果有一些效用函数,比如

PropsAreEqual<T, K1, K2, P>
where
T = type
K1 = key 1
K2 = key 2
P = the property to be equal
Run Code Online (Sandbox Code Playgroud)

这显然很糟糕,但你明白我在说什么。那么你可以做

PropsAreEqual<TabsPanelsProps, 'tabs', 'panels', 'length'>
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs

8
推荐指数
1
解决办法
917
查看次数

标签 统计

typescript ×3

javascript ×1

reactjs ×1

types ×1