相关疑难解决方法(0)

扩展参数必须具有元组类型或传递给 React 的剩余参数

我有这个代码Typescript

const [history, setHistory] = useState([Array(9).fill(null)]);
Run Code Online (Sandbox Code Playgroud)
const newHistory = history.slice(0, currentStep + 1);
Run Code Online (Sandbox Code Playgroud)

当我想使用这样的扩展运算符设置新状态时:

setHistory(...newHistory);
Run Code Online (Sandbox Code Playgroud)

我有错误:

扩展参数必须具有元组类型或传递给剩余参数。

有人可以帮助我,我如何正确输入这个?

spread typescript reactjs

73
推荐指数
4
解决办法
11万
查看次数

如何使用打字稿声明特定长度的字符串?

例如,长度只能为两个字符的字符串,可用于 ISO 国家/地区代码。

我使用过谷歌并查看了文档,但找不到答案。

typescript

18
推荐指数
3
解决办法
7212
查看次数

Typescript 限制最大数组长度

基本上我想要一个最大长度为 4 的数组类型。很容易我无法找到如何在打字稿中实现此检查。有人可以帮我吗?像这样的东西:

const a = [item1, item2, item3, item4, *item5*] -> array has a maximum length of 4
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript arrays typescript

14
推荐指数
1
解决办法
1万
查看次数

打字稿:我可以定义一个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:如何在编译时声明固定大小的数组以进行类型检查

更新:这些检查用于编译时,而不是在运行时.在我的例子中,失败的案例都是在编译时捕获的,我期待其他应该失败的情况下的类似行为.

假设我正在编写一个类似于表的类,我希望该类的所有成员都是相同长度的数组,如:

class MyClass {
  tableHead:  string[3]; // expect to be a 3 element array of strings
  tableCells: number[3]; // expect to be a 3 element array of numbers
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我发现的最接近的解决方案是:

class MyClass {
  tableHead:  [string, string, string];
  tableCells: [number, number, number];
}

let bar = new MyClass();
bar.tableHead = ['a', 'b', 'c']; // pass
bar.tableHead = ['a', 'b'];      // fail
bar.tableHead = ['a', 'b', 1];   // fail

// BUT these also pass, …
Run Code Online (Sandbox Code Playgroud)

javascript typechecking typescript

9
推荐指数
3
解决办法
9666
查看次数

具有固定长度的元组

元组中的Typescript允许添加以前使用过的任何类型的额外元素,但我想限制长度.我试过了& { length: 2 },但没有帮助:

declare var a: [string, number] & { length: 2 };

a[0] = "1"
a[1] = 2;
a[2] = "3";
a[3] = 4;
Run Code Online (Sandbox Code Playgroud)

分配[2][3]不产生错误.如何指定相应的类型?

arrays tuples typescript

7
推荐指数
1
解决办法
133
查看次数

标签 统计

typescript ×6

arrays ×2

javascript ×2

reactjs ×1

spread ×1

tuples ×1

typechecking ×1