TypeScript를 사용한 개방형 함수 인수
IMO는 TypeScript 언어의 주요 관심사 중 하나로 기존의 바닐라 JavaScript 코드를 지원하는 것입니다.이것이 내가 언뜻 본 인상이다.다음 JavaScript 함수는 완벽하게 유효합니다.
주의: 저는 이 접근방식이 좋다고 말하는 것이 아닙니다.유효한 JavaScript 코드입니다.
function sum(numbers) {
var agregatedNumber = 0;
for(var i = 0; i < arguments.length; i++) {
agregatedNumber += arguments[i];
}
return agregatedNumber;
}
따라서 이 함수는 임의의 수의 인수로 소비됩니다.
console.log(sum(1, 5, 10, 15, 20));
그러나 TypeScript Playground에서 테스트하면 컴파일 시간 오류가 발생합니다.
나는 이것이 버그라고 추측한다.호환성 문제가 없다고 가정합니다.그럼 이런 함수를 오픈엔드 인수로 쓸 수 있는 방법이 있을까요?예를 들어params기능을 사용할 수 있습니까?
TypeScript의 방법은 생략 부호 연산자를 배치하는 것입니다....)를 인수의 이름 앞에 붙입니다.상기의 내용은 다음과 같습니다.
function sum(...numbers: number[]) {
var aggregateNumber = 0;
for (var i = 0; i < numbers.length; i++)
aggregateNumber += numbers[i];
return aggregateNumber;
}
그런 다음 다음 다음 명령을 사용하여 올바르게 검사합니다.
console.log(sum(1, 5, 10, 15, 20));
@chuckj의 답변과 더불어:또, VIP 주소의arrow function expressionTypeScript (일종의lambdaJava /로 표시됩니다.네트워크)
function sum(...nums: number[]): number {
return nums.reduce((a, b) => a + b, 0);
}
Typescript에서는 Rest Parameter의 개념이며 유사한 유형의 여러 값을 수신하는 파라미터입니다.타이프스크립트를 타겟으로 하면 ECMAScript 6 standard 코드를 작성해야 합니다.그 후, 타이프스크립트 트랜스필러는 그것을 동등한 자바 스크립트 코드(ECMAScript 5 standard)로 변환합니다.타이프 스크립트를 사용하면 rest parameter 변수 이름에 함수 sum(...numbers: number [])과 같은 3개의 도트(...)를 사용해야 합니다.그러면 동작합니다.
참고: Rest Parameter는 파라미터 목록의 마지막 파라미터여야 합니다.마찬가지로 함수 sum(name:string, age: number, ...sumber: number [ ]).
언급URL : https://stackoverflow.com/questions/12697275/open-ended-function-arguments-with-typescript
'programing' 카테고리의 다른 글
| 각 JS 브레이크 (0) | 2023.04.04 |
|---|---|
| Objective-C 개체를 JSON으로 직렬화 및 직렬화 해제 (0) | 2023.04.04 |
| React 프로젝트의 .gitignore에 있어야 하는 파일 또는 폴더는 무엇입니까? (0) | 2023.03.25 |
| 유형 스크립트의 어레이 VS 유형[ ] (0) | 2023.03.25 |
| Unix 명령줄 JSON 파서? (0) | 2023.03.25 |