inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

유니온 타입과 인터섹션 타입의 차이점

age의 or | type의 속성을 인식해버립니다. ㅠㅠ 제가 잘못하고 있는건가요?

136

ryosuke kureha

작성한 질문수 13

1

function Union(union: Developer | Person) {
// Union Type이 되면, 타입(Developer |or Person)의 공통된 타입만 속성이 된다.
union.name; // (property) name: string
union.age;
// @Error : union.age
// Why not Error?.... not or.. (property) Person.age: number !== WHY?
union.skill;
// Property 'skill' does not exist on type 'Developer | Person'.
// Property 'skill' does not exist on type 'Person'.
}

function askUnion(union: Developer & Person) {
// Union Type이 되면, 타입(Developer &and Person)의 정의된 타입 모두 속성이 된다.
union.name //(property) name: string
union.age //(property) Person.age: number
union.skill //(property) Developer.skill: string
}

var kureha: string | number | boolean // var kureha: string | number | boolean
var ryosuke: string & number & boolean; // var ryosuke: never

es6 typescript javascript

답변 2

1

ryosuke kureha

function Union(union: Developers | Person) {
// Union Type이 되면, 타입(Developer |or Person)의 공통된 타입만 속성이 된다.
union.name; // (property) name: string
/**
* any
Property 'age' does not exist on type 'Developers | Person'.
Property 'age' does not exist on type 'Developers'.ts(2339)
*/
union.age;
// @Error : union.age
// Why not Error?.... not or.. (property) Person.age: number !== WHY?
/**
* Error찾음!: 4_interface.ts => interface Developer extends Person { Person의 interface 상속때문에 인식하게 됨. Person의 확장 | 상속값의 age가 있음.}
*/
union.skills;
// Property 'skill' does not exist on type 'Developer | Person'.
// Property 'skill' does not exist on type 'Person'.
}
에러찾았어요 선생님... 3_interface의 인터페이스의 확장강의에 Person 의 확장값?상속값을 인식한해서 에러가 발생하지 않은것같아요
지금은 interface의 변수명을 바꾸니까 에러가 발생합니다.

0

캡틴판교

안녕하세요 ryosuke님, 잘 해결하셔서 다행입니다 :)

TSLint

0

66

1

vscode eslint server 오류

0

75

1

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

0

77

1

live server 설치 오류

1

368

2

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

0

284

2

npm i 설치 이유 문의

1

402

3

index.ts Delete `␍`eslintprettier/prettier 오류(빨간줄) 해결

2

289

3

vue 에서 jquery 사용 문제

1

692

2

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

1

499

2

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

1

542

1

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

1

452

2

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

2

455

1

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

1

443

2

빨간줄 에러 질문드립니다

1

488

2

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

1

356

2

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

2

393

2

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

1

565

2

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

1

354

2

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

1

323

2

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

1

390

1

전화번호부 타입선언

1

265

2

타입을 전역으로 분리

1

592

2

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

1

459

1

Git 관련 질문이 있습니다

1

669

2