inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

타입스크립트 입문 - 기초부터 실전까지

제네릭의 타입 제한

선생님 수업 내용이 잘 이해가 안가는데요.

275

masichyun77

작성한 질문수 7

2

ㅜ,ㅜ 안녕하세요.

수업 내용중에 타입 제한을 쓰는 이유가 잘 이해가 안가는데요. 

제네릭의 장점과 타입 추론에서의 이점 수업에서..

function logText<T>(text: T): T{
  console.log(text);
  return text;
}

const str = logText<string>('abc');
str.split('');
const login = logText<boolean>(true);

이렇게 하면 str은 string, login은 boolean타입이 되어 각각 원하는 API나 관련 타입으로 이용이 가능하다고 하셨는데요. 그렇다면 아래 처럼

이렇게 하면 파라미터 반환값 모두 string형태인걸 자스도 알고 있는데 왜 length를 사용할 수 없나요? 자스에서 string에  string.length 속성이 있으니 사용할 수 있어야 하지 않나요?

 

그리고 타입 제한 수업 끝 부분에

function logTextLength<T>(text: T): T {
  console.log(text.length);
  return text;
}

logTextLength('hi');

string을 자스가 알지 못하니 파라미터와 반환값에 배열을 넣어 타입 힌트를 주는게 타입 제한이라고 하셨는데요.

우리가 호출하고 싶은건 logTextLength('hi'); hi라는 string인데 왜 배열을 힌트로 알려주나요? 힌트를 줄거면 string이라고 힌트를 줘야 하지 않나요? string글자가 char의 array형태이기 때문에 배열 힌트를 준건가요?

 

미리 감사합니다. 선생님!!!

es6 javascript typescript

답변 1

1

캡틴판교

안녕하세요 제가 답변이 늦었네요. 아직 타입 추론이라는 개념이 낯설어서 이해가 잘 안가시는 것 같아요. 첫 번째 질문은 logTextLength 함수 입장에서는 인자가 어떤게 들어올 지 모르기 때문에 logTextLength('hi')를 하셨더라도 함수 안에서는 그게 string이라고 가정하지 않습니다 :)

두 번째 질문은 제가 잘 이해가 안돼서 답변이 어렵네요..

0

masichyun77

넵 감사합니다. 다시  한번 공부해 보겠습니다.

TSLint

0

77

1

vscode eslint server 오류

0

96

1

안녕하세요. 기본타입- 튜플, 객체, 진위값 부분의 영상의 화면이 나오질 않습니다.

0

85

1

live server 설치 오류

1

397

2

강의 교안 pdf 는 따로 제공하지않나요?

0

294

2

npm i 설치 이유 문의

1

431

3

index.ts Delete &#x60;␍&#x60;eslintprettier/prettier 오류(빨간줄) 해결

2

303

3

vue 에서 jquery 사용 문제

1

710

2

TSLint 확장 프로그램은 현재 지원하지 않는다고 합니다.

1

509

2

강의 내용처럼 노란 밑줄이 작동하지 않아서 유사 질문들을 실행해보았는데요

1

553

1

section 3-1 JSdoc 타입이 추론되지 않아서 다음과 같이 수정했는데 이거 맞나요?

1

465

2

함수에 리턴 안됐다고 노란밑줄이 쳐져야하는데 없습니다

2

463

1

파일이 다른데 식별자가 중복되었다고 뜹니다.

1

461

2

빨간줄 에러 질문드립니다

1

497

2

마우스 갖다대면 리턴값 설명 나오는 거 질문드려요

1

366

2

js에서 @ts-check 적어도 체크하지 못하는 문제입니다

2

405

2

index.html에서 타입스크립트 콘솔 찍는 법 질문드립니다

1

579

2

섹션 1-3 추론 질문드립니다

1

361

2

왜 api쪽에는 왜 에러가 안나는지 궁금합니다.

1

333

2

const item1을 선언했을 때 타입을 선언해줘도 괜찮을까요?

1

404

1

전화번호부 타입선언

1

275

2

타입을 전역으로 분리

1

604

2

객체 선언 시 구분자는 쉼표, 세미콜론 모두 사용가능한건가요?

1

462

1

Git 관련 질문이 있습니다

1

674

2