inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

정의된 타입으로 타입을 제한하기

정의된 타입으로 타입을 제한하기 강의에 대한 질문입니다.

해결된 질문

230

kwk8002

작성한 질문수 4

1

현 강의에서
 
interface LengthType {
    length: number
}
function logTextLength2<T extends LengthType>(text: T): T {
    console.log(text.length)
    return text
}
 
logTextLength2('a')  
logTextLength2({ length: 123 })
 
이 코드에서 문자열은 기본으로 length속성이 있으므로 첫번쨰 호출시 동작 하지만, 제 개인적인 생각으로는 너무 혼란 스럽습니다. 뭔가 눈속임? 편법 ? 같은 느낌이고 , 타입스크립트의 정에서 벗어난 형태 인것 같기도 합니다... 혹시 현업에서도 이런 방식으로 사용하는지 궁금합니다. !
또한 이 코드를 보고 이렇게 생각하는 제가 아직 이해가 부족한건지
당연한 생각인지 한번 여쭙니다..

javascript typescript es6

답변 1

2

캡틴판교

안녕하세요, 눈속임이라기 보다는.. 제네릭의 타입 제한 정의에 맞게 명시적으로 { length: 123 } 뿐만 아니라 데이터 타입에 length 속성이 제공되는 문자열 타입도 사용할 수 있다는 사실에 주목하셔야 할 것 같습니다 :)

1

kwk8002

네 선생님이 말씀하신데로 이해하겠습니다. 

답변 감사합니다!

TSLint

0

77

1

vscode eslint server 오류

0

97

1

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

0

87

1

live server 설치 오류

1

400

2

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

0

294

2

npm i 설치 이유 문의

1

431

3

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

2

303

3

vue 에서 jquery 사용 문제

1

712

2

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

1

511

2

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

1

553

1

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

1

465

2

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

2

463

1

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

1

461

2

빨간줄 에러 질문드립니다

1

499

2

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

1

367

2

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

2

406

2

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

1

579

2

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

1

362

2

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

1

335

2

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

1

404

1

전화번호부 타입선언

1

276

2

타입을 전역으로 분리

1

604

2

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

1

462

1

Git 관련 질문이 있습니다

1

674

2