TypeScript 선택적 매개변수
undefined
인 것처럼 함수를 실행합니다.TypeScript에서는 상황이 약간 다릅니다. 함수가 실제로 가지고 있는 것과 다른 수의 매개변수로 함수를 실행하려고 하면 오류가 발생합니다. 예를 들어 다음을 고려하십시오.
const myFunction = (a: string, b: string, c?: string) => {
return a + " " + b + " " + c;
}
let runFunction = myFunction("Hello", "there");
위의 코드는 다음 오류를 발생시킵니다.
Expected 3 arguments, but got 2.
TypeScript는 오류를 줄이기 위해 이렇게 합니다. 호출하는 함수에서 매개변수를 남겨두면 때때로 함수가 중단될 수 있기 때문입니다. 따라서 함수에 정의한 매개변수 중 하나 이상이 선택적임을 TypeScript에 구체적으로 알려야 합니다. 이를 위해 매개변수 뒤에
?
를 사용하여 실제로는 선택적 매개변수임을 나타냅니다.예를 들어 원래 함수에서
c
를 선택 사항으로 만들고 싶다면 다음과 같이 작성할 수 있습니다. 그러면 오류가 발생하지 않습니다.const myFunction = (a: string, b: string, c?: string) => {
return a + " " + b + " " + c;
}
let runFunction = myFunction("Hello", "there");
console.log(runFunction);
이제 함수가 예상대로 실행되지만 출력은
Hello there undefined
입니다. 이것은 원하는 동작이 아닐 수 있으며, 이것이 바로 TypeScript에 이러한 컨트롤이 있는 이유입니다. 특정 매개 변수를 요구하여 원하지 않는 결과를 방지하는 데 도움이 될 수 있습니다.그러나 TypeScript에서는 선택적 매개변수 뒤에 필수 매개변수가 올 수 없습니다. 예를 들어 다음 코드는 작동하지 않습니다.
const myFunction = (a: string, b?: string, c: string) => {
return a + " " + b + " " + c;
}
다음 오류가 발생합니다.
A required parameter cannot follow an optional parameter.
이 선택 사항을 typeof operator의 사용과 결합하여 의미 있는 코드를 생성할 수 있습니다. 예를 들어
c
가 선택 사항이고 정의되지 않은 경우 다음과 같이 무시할 수 있습니다.const myFunction = (a: string, b: string, c?: string) => {
if(c === undefined) {
return a + " " + b;
}
return a + " " + b + " " + c;
}
let runFunction = myFunction("Hello", "there");
console.log(runFunction);
이제 코드의 출력은
Hello there
이지만 c
로 실행하여 다른 출력을 생성할 수도 있습니다. 예를 들면 다음과 같습니다.const myFunction = (a: string, b: string, c?: string) => {
if(c === undefined) {
return a + " " + b;
}
return a + " " + b + " " + c;
}
let runFunction = myFunction("How", "are", "you?");
// Returns "How are you?"
console.log(runFunction);
Reference
이 문제에 관하여(TypeScript 선택적 매개변수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/smpnjn/typescript-optional-parameters-1793텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)