inflearn logo
강의

Khóa học

Chia sẻ kiến thức

TypeScript (TypeScript) được cắt thành từng miếng vừa một miếng ăn

Kiểu điều kiện phân phối

분산적인 조건부 타입 섹션 질문

534

HK

15 câu hỏi đã được viết

0

13:02초에서

type StringNumberSwitch<T> = [T] extends [number] ? string : number;  

let d: StringNumberSwitch<boolean | number | string>;

설명 해주셨는데, 이해가 되지 않아서, d의 타입이 왜 number타입인지 설명해주시면 감사하겠습니다.

 

typescript

Câu trả lời 2

0

rkddus962133

어 저도 뭔가 같은? 이상함을 느껴서 생각해봤는데

number| boolean | string 이 수퍼 타입이에요!!

number| boolean | string extends number는

수퍼타입 extends 서브타입인거에요. 말이 안되죠.

이전에 배운

type a = {
name: string
}

type b = {
name: string;
age: 
}

에서 type a가 수퍼타입, type b가 서브타입이었다는 것 때문에 착각하신 것 같아요.

0

winterlood

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

T extends number ? ...와 같은 조건부 타입에서

[T] extends [number] ? ...와 같이 extends 양쪽을 모두 대괄호로 감싸주시면 이 조건부 타입은 이제 분산적이지 않은 조건부 타입으로 동작하게 됩니다.

따라서 이때의 d 의 타입 StringNumberSwitch<boolean | number | string>은 다음과 같이 계산됩니다.

  1. 타입변수에 타입 할당 : T = boolean | number | string

  2. 조건식 boolean | number | string extends number은 거짓이 됨

  3. 이 조건부 타입은 조건이 참일 경우 string 거짓일 경우 number 타입을 반환하므로 결과는 number타입이 됨

인덱스드 엑세스타입 실무질문

0

8

2

모든 ts파일이 컴파일 되지 않습니다.(해결됨.)

0

90

4

핸드북 light/dark mode 관련 이슈가 있는 것 같습니다.

0

68

1

제네릭 클래스 핸드북 페이지가 undefined라고 나옵니다.

0

75

2

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

0

73

2

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

0

184

1

호출 시그니처 질문

0

108

2

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

0

127

2

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

0

97

1

할인쿠폰 관련하여

0

225

2

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

0

138

2

안녕하세요 이정환님!

0

120

1

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

0

126

2

함수 타입 호출 시그니처

0

88

1

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

0

93

2

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

0

151

4

마우스 호버 시 정보

0

130

2

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

1

113

2

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

0

124

2

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

0

169

2

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

0

139

2

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

0

161

1

type: module

0

136

2

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

0

102

1