union(|)과 intersection(&)

모두의희망·2023년 1월 9일
0

TypeScript

목록 보기
5/11
post-thumbnail

union(|)

function add(x: string | number, y: string | number): string | number {return x + y}
// string또는 number라서 문자나 숫자 암거나 가능 문제는 타입추론도 제대로 하지 못한다.
const result: string | number = add(1,2); //값이 number인데 이것이 착각해서 string으로 인식할수있다.
add('1', '2')
add(1, '2')
  • string또는 number라서 문자나 숫자 암거나 가능 문제는 타입추론도 제대로 하지 못한다.
  • const result: string | number = add(1,2); //값이 number인데 이것이 착각해서 string으로 인식할수있다.

intersection(&)

type A = { hello: 'world' } & { zero: 'cho' }; 
//& 일 때는 모든 속성이 다 있어야 한다.
const a: A = { hello: 'wold', zero:'cho' }// zero가 없으면 에러가남 hello와 zero둘다 있어야 한다.

& 일 때는 모든 속성이 다 있어야 한다.

union(|)과 intersection(&)

type A = { hello: 'world' } & { zero: 'cho' }; 
//& 일 때는 모든 속성이 다 있어야 한다.
const a: A = { hello: 'wold', zero:'cho' }// zero가 없으면 에러가남 hello와 zero둘다 있어야 한다.
type A = { hello: 'world' } | { zero: 'cho' }; 
//& 일 때는 모든 속성이 다 있어야 한다.
const a: A = { hello: 'wold'}//이것도 가능하고
const a: A = { zero: 'cho'}//이것도 가능하고
const a: A = { hello: 'wold', zero:'cho'} //이것도 가능하다.

정리

  • intersection(&)이면 모든속성이 다있어야 한다.
  • union(|)이면 여러개중에 하나만 있어도 된다.
profile
개발을 진정성 있게 다가가겠습니다.

0개의 댓글