본문 바로가기

Language/Type Script14

[Type Script] 제네릭 타입 생성 제네릭 타입 생성 자신만의 제네릭 클래스, 인터페이스 또는 함수를 만들 수 있다. Rectangle 클래스가 있고 두 사각형의 크기를 비교하는 함수를 추가해야 한다고 가정해보자. 인터페이스 프로그래밍으로 구현하면? 당장은 사각형만 비교하지만 다음에는 다른 객체를 비교할지도 모른다. compareTo() 함수와 함께 인터페이스를 선언해보자. Rectangle 클래스와 나중에 만들 클래스는 동일한 인터페이스를 구현한다. 사각형, 삼각형은 서로 비교하는 알고리즘은 다르겠지만 '비교'라는 공통점이 있기 때문에 compareTo() 메서드 시그니처 또한 같을 것이다. 일단 두 객체 타입을 비교하기 위해 특정 객체가 비교 대상보다 크기가 크면 양수를 반환하고 작으면 음수를, 동일하면 0을 반환하는 compareTo.. 2022. 2. 1.
[Type Script] 인터페이스 사용, 확장, 프로그래밍, 열거타입 인터페이스 사용 인터페이스는 속성뿐만 아니라 메서드 선언도 포함할 수 있다.(구현X) 그리고 클래스 선언엔 implements 키워드와 인터페이스 이름을 사용할 수 있다. 즉, 인터페이스는 메서드 시그니처만을 포함하지만, 클래스는 메서드 구현이 포함될 수 있다. MotorVehicle 인터페이스에 5개의 메서드를 선언했다.(구현X) 위 코드는 컴파일되지 않아 Class 'Car' incorrectly implements interface 'MotorVehicle'. 이라는 에러가 뜬다. -> 인터페이스로 클래스를 선언할 때 인터페이스 내 각 메서드를 구현해야 함을 뜻한다. 즉, Car 클래스가 MotorVehicle 인터페이스에 선언된 API를 반드시 구현할 것임을 약속함을 의미한다. 위 코드는 car의.. 2022. 1. 29.