반응형
어레이 파괴 시 유형
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 아래의 행에 오류가 발생하였습니다.type에 콜시그니처가 없는 식을 호출할 수 없습니다.
nodes.map(x => {
//some mapping;
return x;
);
행을 아래와 같이 변경하면 문제가 해결되었습니다.
const [nodes, counts] = <Node[], number[]>getNodesAndCounts();
간단한 답변으로 이 작업을 수행할 수 있습니다.
function f([a,b,c]: number[]) {}
언급URL : https://stackoverflow.com/questions/31923739/types-when-destructuring-arrays
반응형
'it-source' 카테고리의 다른 글
ng-if를 ng-repeat 내의 스위치로 사용합니까? (0) | 2023.02.16 |
---|---|
AngularJS 자원 약속 (0) | 2023.02.16 |
Chrome에서 iframe을 로드할 때 'load' 이벤트가 발생하지 않음 (0) | 2023.02.16 |
LIKE 연산자에 여러 조건을 도입하려면 어떻게 해야 하나요? (0) | 2023.02.16 |
파라미터를 jQuery의 .load()에 전달하는 가장 좋은 방법 (0) | 2023.02.16 |