Direction이라는 타입을 설정하고 들어갈 타입을 정해주면 move 함수를 작성하는 순간 들어갈 수 있는 타입이 나온다.
유니언은 발생할 수 있는 케이스 중 하나만 정할 때 사용한다.
interface는 클래스, 객채의 타입을 지정하기 위한 문법이다. 클래스를 선언 할 때 implements 키워드를 사용하여 해당 클래스가 특정 interace의 요구사항을 구현한다는 것을 명시합니다.
interface Shape {
getArea(): number;
}
class Circle implements Shape {
radius: number;
}
implemnets를 사용하여 해다 클래스가 Shape interface의 조건을 따를 것음 명시한다.
두 개의 클래스를 만들고
요렇게 사용하면 된다.
이렇게 멤버 변수 없애고 public, private으로 지정해준다.
private은 에러가 난다.
interface 지정하고
요렇게 쓴다.
Generics는 타입스크립트에서 함수, 클래스, interface, type을 사용할 때 여러 종류의 타입에 대한 호환을 맞춰야 하는 상황에서 사용하는 문법이다.
객체 a, b를 합쳐주는 함수를 만든다고 했을 때, 어떤 타입이 올지 모르니까 이때 Generics를 사용하면 된다.
<>안에 타입의 이름을 넣고 제네릭에 해당하는 타입에는 뭐든지 들어올 수 있게 되면서 사용할 때 타입이 깨지지 않는다.
Items<string>
라는 타입을 사용하면 Items 타입을 지니고 있는 객체의 list 배열 string[] 타입을 지니고 있게 된다. 이렇게 하면 list가 숫자 배열인 경우, 문자 배열인 경우, 객체 배열인 경우 어떤 배열이든 하나의 interface만 사용하여 타입을 설정할 수 있다.