inflearn logo
강의

講義

知識共有

タイプスクリプトのすべて

타입 단언과 관련해서 질문드립니다.

解決済みの質問

651

aa aa

投稿した質問数 2

0

스크린샷 2023-05-19 오후 7.48.32.png

강의를 다 보고 나서 의문점이 들어서 질문 드립니다.

강의에서 value 값을 출력하기 위해서

인터페이스를 만들고 as랑 제네릭을 활용하는 법을 알려주셨는데

제 생각에는 인터페이스를 만들었으니까

example의 타입으로 인터페이스를 주면 되지 않을까 했습니다.

해봤더니 에러가 안 나고 출력도 잘 되더라고요

저한테는 인터페이스를 타입으로 주는 것이 더 간편하게 느껴지는데

object를 타입으로 주는 것이 더 실무에 적합한 방식인 건가요?

어떤 차이점이 있을까요?

 

스크린샷 2023-05-19 오후 8.11.57.png

그리고 제네릭을 식별자 뒤에 쓰면 인수와 관련된 것 같은데

식별자 앞에 제네릭을 쓰면 어떤 의미인가요?

typescript Deno nestjs

回答 1

1

yongsoocho

  1. example의 타입으로 인터페이스를 주면 되지 않을까 했습니다.

    해봤더니 에러가 안 나고 출력도 잘 되더라고요

    저한테는 인터페이스를 타입으로 주는 것이 더 간편하게 느껴지는데

    object를 타입으로 주는 것이 더 실무에 적합한 방식인 건가요?

    답: 당연히도 타입을 알맞게 달아주는 것이 맞습니다. object는 제가 예시를 들기위해서 저렇게 단 것 뿐입니다. 보통 저런 상황들은 규모가 있는 애플리케이션에서 발생합니다.

    서버1 <-> 서버2 <-> 서버3
    서버1 <-> 서버2 <-> 데이터베이스....

    등 다양한 구조에서 서버 몇개와 통신하며 다른 서버에서 어떤 타입의 데이터가 넘어오는지 모르기 때문에 직접입력하는 것 아니면 any로 인식할 가능성이 있기 때문에 타입단언을 쓸 일이 생길 수 있습니다.

  2. 그리고 제네릭을 식별자 뒤에 쓰면 인수와 관련된 것 같은데

    식별자 앞에 제네릭을 쓰면 어떤 의미인가요?

    답: 제네릭은 "타입<타입변수>" 꼴인 타입을 말하는데, example은 타입이 아니라 변수기 때문에 저건 제네릭이 아니라 없는 문법입니다.

1

aa aa

빠른 답변 감사합니다.

1번은 이해가 갔습니다.

2번은 추가적인 궁금증이 있는데요

그럼 강의에서 나온 (<IExam>example)은 "<타입변수> 변수"에 전체괄호를 해준 형태이고

example 변수가 IExam의 형식이라는 뜻일까요?

지금까지 제네릭을 쓸 때 function add<T> 이것처럼 뒤에다만 붙여서 써서 이해가 잘 안 가네요

1

yongsoocho

"<IExam>example" 은 "example as IExam"과 같은 뜻이며

그냥 타입 캐스팅(type casting)입니다!
단언과 캐스팅이 문법은 같은데
- 타입 단언 : 이건 이거야!!
- 타입 캐스팅 : A 타입을 B 타입으로 바꿔야겠다!
과 같은 느낌입니다.

또한 괄호 .. ( ) <- 요녀석은 문법이 아니라 코드가독성을 위해 추가된 것 입니다 :)

1

aa aa

감사합니다! 주말이라 귀찮으셨을텐데 친절히 답변주셔서 감사합니다ㅠㅠ

명시적 타입 선언(콜론 타입 선언)과 as 타입 단언 차이

0

5

1

타입 주석

0

48

1

BuilderInit 사용 이유

0

409

1

ts-node extends시 에러가 발생합니다 ㅠㅠ

0

836

1

데코레이터-2 강의 질문이 있습니다.

0

284

1

enum 질문이 있습니다.

0

330

1

색션 2, 데코레이터 개념이 아예 이해가 안됩니다.

0

539

1

변수의 타입에 클래스를 지정해준 것과 지정 안한 것 과의 차이가 어떻게 되는지 궁금해서 질문을 남깁니다.

0

369

2

섹션4 예제0 질문입니다.

0

719

2

제네릭 extends관련질문 있습니다.

0

367

1

안녕하세요 정말 좋은 강의 감사합니다

0

381

1

하나의 인터페이스와 여러 버전의 클래스에 관한 질문

0

413

1

!과 타입 단언 (보충) 질문

0

404

1

화살표 함수에서 this

0

435

1

constructor질문

0

262

1

extends와 implements질문 드립니다.

0

302

1

질문 드립니다.

0

375

2

as와 변수의 타입 지정 차이

0

353

1

undefined형식 에러

0

398

1

질문드립니다.

0

264

1

리터럴 타입 질문드립니다.

0

333

1

변수들이 var로 변합니다.

0

528

1

코딩 초보

0

462

1

service계층과 데이터베이스 요청 주고받을 때 Builder패턴 질문

0

1760

1