inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 입 크기로 잘라먹는 타입스크립트(TypeScript)

자바스크립트의 클래스 소개

클래스 관련 질문 드립니다

해결된 질문

48

two678

작성한 질문수 2

0

한입 크기로 잘라먹는 타입스크립트 강의에서 Section 7의 36번 강의에서 이 아래의 코드가 나오는데 Student 클래스의 생성자 부분에서 'name' 매개변수에는 암식적으로 'any' 형식이 포함됩니다.라고 에러가 뜨고 name 뿐만아니라 grade, age 도 똑같은 에러가 뜨는데 혹시 원인이 뭔지 알 수 있을까요? 강사님과 똑같은 코드를 쳤는데 오류가 나와서 어디가 문제인지 모르겠습니다...

class Student {
  // 필드
  name;
  grade;
  age;

  // 생성자
  constructor(name, grade, age) {
    this.name = name;
    this.grade = grade;
    this.age = age;
  }

  // 메서드
  study() {
    console.log("열심히 공부 함");
  }

  introduce() {
    console.log(`안녕하세요!`);
  }
}
image.png

 

typescript

답변 2

1

이정환 Winterlood

안녕하세요 이정환입니다.

이 문제는 질문자님께서 실습 파일을 현재 "TS" 파일로 만드셔서 그렇습니다. 해당 챕터에서는 자바스크립트의 클래스를 소개하기 위해 "JS" 파일을 만들어 실습하고 있으니 파일의 확장명을 TS -> JS로 바꿔 타입 검사가 이루어지지 않도록 하시면 문제가 해결됩니다.

0

two678

아하 그래서 오류가 났던 거군요 감사합니다!

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 이지현님.

타입스크립트에서 매개변수의 any 타입은 일반적으로 strict 모드 또는 noImplicitAny 옵션이 활성화되어 있을 때 발생하는 문제입니다. 이 옵션들이 활성화되면, 타입스크립트는 타입 추론이 불가능한 경우 경고를 표시하며 any로 추론하게 됩니다.

지금의 오류는 매개변수 name, grade, age에 명시적으로 타입을 지정하지 않아 발생한 것입니다. 이러한 문제를 해결하기 위해서는 각 매개변수에 타입을 명시해주면 됩니다. 예를 들어, string 타입처럼 우선적인 타입을 지정해주시면 에러가 사라질 것입니다.

class Student {
  // 필드
  name: string;
  grade: string; // 또는 number, 타입에 맞게 변경하세요.
  age: number;

  // 생성자
  constructor(name: string, grade: string, age: number) { // 여기에 타입을 명시합니다.
    this.name = name;
    this.grade = grade;
    this.age = age;
  }

  // 메서드
  study() {
    console.log("열심히 공부 함");
  }

  introduce() {
    console.log(`안녕하세요!`);
  }
}

이 수정된 코드에서는 namegradestring, agenumber로 명시되어 각 필드와 매개변수가 구체적임을 명시하므로 타입스크립트 컴파일러가 더 정확히 타입을 추론할 수 있게 됩니다.

관련 자료를 더 보고 싶으시다면 이곳을 참고하시면 기본 타입 정의에 대해 더 깊이 이해하실 수 있습니다.

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

적절한 타입 찾기 React.ChangeEvent<HTMLInputElemen>

0

22

2

outDir 옵션 추가 후 컴파일 오류 질문

0

58

1

호출 시그니처 질문

0

64

2

서로소 유니언 타입이 discriminated union과 동의어 인가요?

0

74

2

조건부타입소개 중 함수오버로딩 활용 시 인수의타입과 함수의 반환값의 타입이 깨지는 문제

0

65

1

할인쿠폰 관련하여

0

154

2

프론트엔드에서의 인터페이스활용

0

92

2

안녕하세요 이정환님!

0

90

1

Node.js 설치에 관한 질문입니다.

0

79

2

함수 타입 호출 시그니처

0

56

1

35강. 모듈 보강은 라이브러리 파일을 직접 편집해야 하나요?

0

63

2

인터페이스 문법이 있는데 타입 별칭 문법은 왜 있나요?

0

115

4

마우스 호버 시 정보

0

91

2

vite으로 리액트 빌드하기를 업데이트해주세요.

1

89

2

타입가드를 만들어 사용하는 이유가 궁금합니다.

0

82

2

섹션 12가 너무 어려운데... 정상이겠죠..?

0

136

2

선생님.. 알고리즘도 강의해주시면안되나요

0

100

2

선생님은 어떻게 이런걸 아세요?

0

128

1

type: module

0

97

2

7:17초 업캐스팅 질문이있습니다!

0

75

1

슈퍼타입질문

1

62

2

프로젝트 설치

0

103

2

enum은 비원시 타입이면서 열거형 타입이 되는건가요?

0

68

2

함수는 함수타입? 객체타입??

1

94

2