inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

타입 단언

타입단언과 타입 캐스팅 관련해서 질문 있습니다!

해결된 질문

150

JIN LEE

작성한 질문수 8

0

1번 질문: 타입단언강의 마지막 부분에서 타입 단언은 타입 스크립트 컴파일러가 그렇게 믿도록 만드는 것이지 실제로 타입을 바꾸는 건 아니다, 업캐스팅 다운캐스팅하고는 다르다 라고 하셨는데 그러면 업캐스팅을 할때는 완전히 타입 자체를 바꾸게 되는건가요?? 2번 질문: non, null 단언은 타입을 바꾸는 것이 아니라서 실제로 값이 없을 때 사용하면 오류가 날 수 있어서 약간 위험한 문법이라고 하셨는데 as로 하는 타입단언도 마찬가지로 조심히 사용해야하는 문법인건가요?? 감사합니다!!

typescript

답변 2

1

이정환 Winterlood

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

순서대로 답변드리겠습니다.

 

1) 업 캐스팅은 타입 단언과 달리 실제로 타입이 변경되는 것인가?

네 그렇습니다. 다음 예제에서 num2에 저장된 num1의 값은 기존 타입(Number 리터럴 타입)에서 새로운 타입(Number 타입)으로 변경된다고 볼 수 있습니다.

const num1:10 = 10;
const num2:number = num1;

물론 타입이라는 것은 여러 값을 포함하는 집합으로 이해할 수 있기 때문에 10이라는 값은 여전히 Number 리터럴 타입에 포함되는 것도 맞습니다. 중요한 포인트는 기존 Number 리터럴 타입의 변수에 담겨 있던 값이 이제는 Number 타입의 변수에 담기게 되기 때문에 앞으로 Number 타입으로 사용이 될 것 이라는 겁니다.

 

2) NonNull 단언과 As 단언의 차이

모든 타입 단언은 위험합니다. 타입 검사를 무시하고 타입스크립트 컴파일러에게 강제로 특정 타입으로 변환해 검사하도록 하기 때문입니다.

0

JIN LEE

감사합니다!!

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

0

25

2

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

0

62

1

호출 시그니처 질문

0

65

2

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

0

75

2

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

0

65

1

할인쿠폰 관련하여

0

155

2

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

0

94

2

안녕하세요 이정환님!

0

91

1

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

0

79

2

함수 타입 호출 시그니처

0

56

1

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

0

64

2

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

0

118

4

마우스 호버 시 정보

0

92

2

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

1

89

2

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

0

83

2

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

0

136

2

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

0

100

2

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

0

128

1

type: module

0

97

2

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

0

76

1

슈퍼타입질문

1

62

2

프로젝트 설치

0

103

2

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

0

69

2

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

1

94

2