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으로 인식할수있다.
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', 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(|)이면 여러개중에 하나만 있어도 된다.