노마드코드 타입스크립트 강의를 보면서 정리한 글입니다
노마드 첼린지 타입스크립트를 진행하고 있으며 오늘은 5일차입니다

정리
TypeScript 를 활용한 객체지향 프로그래밍
배우는 이유 : TypeScript가 객체지향 코드를 더 안전하고 좋게 만들도록 도와주는 기능을 제공함
객체 지향 프로그래밍이란?
https://insidelamp.tistory.com/72
코드스테이츠 블로깅 다섯번째 객체 지향 프로그래밍 ( OOP )
객체지향 프로그래밍이란? ( OOP ) 객체 지향 프로그래밍은 컴퓨터 프로그래밍 페러다임 중 하나로 프로그래밍에서 필요한 데이터를 추상회시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간
insidelamp.tistory.com
타입스크립트에서 클래스 선언과 객체 생성방법

자바스크립트에서 constructor 함수를 만들고 사용하는 방법

타입스크립트에서는 파라미터를 써주기만 한다면 Constructor 함수를 만들어줍니다
위의 자바스크립트로 클래스를 만들어줄때 this를 사용하여 만들어줘야했지만 TypeScript는 위와같이 사용해주면 됩니다
타입스크립트에서는 private 혹은 public poperty 를 만들 수 있습니다

모든 객체향 프로그래밍 언어들이 가지고있는 특징이지만 private 혹은 public 부분이 JavaScript에서는 보이지가 않습니다
( JavaScript 로 컴파일 되면서 private 부분과 public 부분이 사라짐 )
타입스크립트의 private, public 키워드는 작성한 코드를 보호해주기위해 사용합니다 ( JavaScript 에서는 사용되지 않음)



위의 사진을 보시면 타입스크립트에서는 private으로 선언한 firstName을 보호해주는것을 보실 수 있습니다
JavaScript 에서는 private 나 public 같은 보호가 제공되지않습니다
타입스크립트와 객체 지향 프로그램이 가지고있는 훌륭한점은 추상 클래스 라고합니다
추상클래스란?
- 다른곳에서 상속만 받을 수 있는 클래스
- 직접 새로운 인스턴스를 만들수는 없음

👆 추상클래스를 사용하여 User의 property를 상속받은 사진

👆 추상클래스를 사용하여 직접 User의 인스턴스를 생성하여 오류가 뜬 사진

위와 같이 사용해서 추상 메소드를 만들 수 있습니다
메소드란 클래스안에 존재하는 함수를 의미합니다
추상클래스 안에서는 추상 메소드를 만들 수 있습니다
- 메소드를 구현하면 안되고 메소드의 call signature만 적어줘야합니다


추상 메소드는 추상클래스를 상속받는 모든 것들이 구현을 해야하는 메소드를 의미합니다
상속받을 property를 privite로 만든다면 클래스를 상속하였을지라도 클래스의 property 에 접근할수없습니다
위의 코드는 Player에서 User를 상속받지만 Player에서는 nickname에 접근할수없는것을 볼수있습니다
위의 코드에서는 보호하기위한 방법이 2가지만 있는게 아니라서라고 합니다
privite로 코드에 작성되어 있다면 작성된 property 들은 인스턴스 밖에서 접근할수 없으며, 다른 클래스에서도 접근할수없습니다
private는 말그대로 개인적인것을 말하며 User클래스의 인스턴스나 메소드에 접근할수있으나 추상클래스 ( getFullname ) 의 경우 인스턴스화 할 수 없습니다
만약 코드가 외부로부터 보호는 되지만 다른 자식클래스에서는 사용되기를 원한다면 private를 사용하면 안되고 protected를 사용해야합니다
protected를 사용 시 클래스 밖에서는 사용이 불가능하지만 User를 상속하면 User.nickname에 접근할 수 있습니다


'공부한것들 정리' 카테고리의 다른 글
| 타입스크립트 강의 정리 - 1 (0) | 2022.12.14 |
|---|