function f([a,b,c]) {
// this works but a,b and c are any
}
有可能写这样的东西吗?
function f([a: number,b: number,c: number]) {
// being a, b and c typed as number
}
function f([a,b,c]) {
// this works but a,b and c are any
}
有可能写这样的东西吗?
function f([a: number,b: number,c: number]) {
// being a, b and c typed as number
}
这是在参数列表中解构数组的正确语法:
function f([a,b,c]: [number, number, number]) {
}
是的。在 TypeScript 中,您可以通过一种简单的方式来处理数组类型,即创建元组。
type StringKeyValuePair = [string, string];
你可以通过命名数组来做你想做的事:
function f(xs: [number, number, number]) {}
但是您不会命名内部参数。另一种可能性是成对使用解构:
function f([a,b,c]: [number, number, number]) {}
使用 TypeScript 4.0,元组类型现在可以提供标签
type Range = [start: number, end: number]
我的代码如下
type Node = {
start: string;
end: string;
level: number;
};
const getNodesAndCounts = () => {
const nodes : Node[];
const counts: number[];
// ... code here
return [nodes, counts];
}
const [nodes, counts] = getNodesAndCounts(); // problematic line needed type
typescript 在 TS2349 下方的行中给了我错误:无法调用类型缺少调用签名的表达式;
nodes.map(x => {
//some mapping;
return x;
);
将行更改为以下解决了我的问题;
const [nodes, counts] = <Node[], number[]>getNodesAndCounts();
作为一个简单的答案,我想补充一点,您可以这样做:
function f([a,b,c]: number[]) {}