inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편

void의 두 가지 사용법

타입스크립트 교과서 p122 forEach 메서드 질문

해결된 질문

231

상우

작성한 질문수 7

0

[1, 2, 3].forEach((item, index, array) => {
  console.log(item, index, array);
});

[1, 2, 3].forEach((item, index) => {});
[1, 2, 3].forEach((item) => item);

 

책에 forEach 메서드의 콜백 함수는 callbackfn 타입입니다.

콜백 함수의 매개변수에 타입을 표기할 필요가 없고, 매개변수도 전부 옵셔널입니다.

라고 쓰여있습니다.

 

질문)

forEach 메서드의 매개변수가 옵셔널이라는 것을 어떻게 아는거죠?

옵셔널이라면 thisArg?: 이런식으로

forEach(callbackfn: value?:number, index ?:number ...)

이런식으로 쓰여있어야 하는거 아닌가요?

 

typescript

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 상우님의 질문에 대한 답을 찾기 위해 유사한 내용을 검토해보았습니다.

타입스크립트의 forEach 메서드와 관련하여 매개변수가 옵셔널인지 궁금하신 것 같습니다. 핵심적으로, 타입스크립트에서 배열의 forEach 메서드가 사용될 때, 콜백 함수의 모든 매개변수(Value, Index, Array)는 사실상 옵셔널입니다. 이는 forEach의 콜백 함수에서 해당 매개변수들을 모두 사용하지 않아도 된다는 의미입니다. 예를 들어, item만 사용하거나 itemindex만 사용하는 경우에도 정상적으로 작동합니다. 그러나 문법상으로 매개변수들에 옵셔널(?)을 명시하지는 않습니다.

해결 방법

제로초님의 답변을 참고하면, 타입스크립트에서는 콜백함수의 매개변수를 따로 적지 않아도 옵셔널임을 알 수 있습니다. 즉, 콜백 함수의 매개변수가 필요에 따라 제공되거나 생략될 수 있다는 것을 의미합니다. 관련 내용은 아래 URL에서 확인해보실 수 있습니다:

추가 정보

매개변수가 옵셔널이라는 표현은 해당 매개변수를 전달하지 않아도 함수가 정상적으로 동작한다는 의미입니다. 타입스크립트에서는 함수의 매개변수가 명시적으로 옵셔널로 표시되지 않을 수 있지만, 특정 조건 아래에서는 이 매개변수들이 무시될 수 있음을 암묵적으로 이해해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

상우

답변 확인 완료했습니다!

데코레이터가 현재도 자주 쓰이는 문법인가요?

0

76

2

유틸리티 타입 실제로 구현은 못해도 하나씩 외우면 실무할 때 지장 없겠죠?

0

63

1

매핑 타입은 type에서밖에 안된다고 하네요?

0

62

2

자바에서의 오버로딩과 같은 개념이라고 생각해도 되나요?

0

67

2

filter 함수 반환 타입 네로잉 질문

0

70

2

map<U>(callbackfn: ....) 할때 U는 왜 여기 있는거에요??

0

44

2

ts 컴파일을 위한 type 라벨링 부분

0

44

1

concat 함수 타입 구현 중 질문 있습니다!

0

99

2

filter 메소드 질문

0

52

1

forEach 제네릭 관련 문의

0

59

1

타입 추론 시 가장 넓은 범위로 추론이 되는 건가요?

0

162

1

enum이 javascript로 트랜스파일링될때 사라진다하셨는데요

0

206

1

함수 파라미터 타입 정의 시 ...args: any[]와 ...args: any 의 차이

0

223

1

Flat type에서 ReadonlyArray 타입을 사용하는 이유?

0

157

1

bind type 질문

1

147

1

Lowercase type 관련 질문

0

151

1

key-value 타입 자동추론 질문드립니다

0

264

1

타입스크립트 교과서, p131

0

264

1

타입스크립트 교과서 p116 , 코드에러남

1

268

1

타입스크립트 교과서 p112 , 코드가 안읽힙니다..

0

264

1

타입스크립트 교과서 p83

1

182

1

타입스크립트교과서 p39 쪽 코드가 이해가 안되요

1

225

1

class 에서 ts의 private vs js의 private field( # )

0

335

1

ts -> js 로 변환할 때 타입선언을 남겨두는걸 추천하는 이유

0

254

1