저렇게 쓰면 이제 male과 female말고는 다른 스트링이 들어오지 못함
리터럴 타입 사용하면 좋은 점
위의 예시를 보면 age가 스트링 타입일때 오류를 발생시키는 것을 볼 수 있음.
유니온 타입 = 공용체
공용체도 사용자 정의 타입..이다
item에 빨간줄이 그어짐 -> 문자열도 들어올 수 있다는 위험성을 알려줌
이러한 위험성을 막기 위해 typeof 연산자를 쓸 수 있음
이런식으로 타입가드를 통해 타입 검증을 해줄 수 있다.
타입별칭 : 또다른 타입 재정의
유니온 : |쓰는 것
array와 tuple의 차이점
실습
구조체, 공용체, 열거형, 인터페이스, 클래스...
-> 연관된 변수와 함수들을 한 덩어리로 묶음.
클래스와 객체
클래스(설계도, 생산틀)는 객체(클래스의 실체)의 뼈대.
실습
위의 예시에서는 객체의 클래스 멤버변수 값을 하나하나 초기화시켜줬다.
-> 불편하다.
-> 생성자 이용
컴파일 기반 언어에서는 생성자를 쓸 때 클래스의 이름과 동일하게 작성하지만,
타입스크립트에서는 그렇지 않음 -> constructor을 쓴다.
실습
생성자에서 매개변수를 선택적으로 넣고 싶다면 옵서녈 기호(?)를 쓰면 된다.
주의점 : 필수 매개변수를 다 쓰고 난 뒤에 선택적 매개변수를 작성해야 한다.
아니면 아래 new Employee(); 호출할 때 괄호 안의 매개변수 순서에서 착오가 생길 수 있음.
접근지정자를 통해 보호를 해줄 수 있다.
근데 캡슐화를 시켰는데 캡슐 안 내용물을 완전히 볼 수 없는 것도 문제다.
어떻게 해야할까? -> 다음 챕터
private으로 선언된 멤버변수에 접근할 수 있도록 ts에서 제공하는 getter와 setter 메서드.
cf.다른 언어에도 그렇지만 private 변수 앞에는 언더바를 붙이는 관습이 있다.
public으로 선언된 get과 set을 통해 캡슐의 내용물에 접근을 할 수 있다.