Typescript_스터디 11일차 (23/02/16)

yhwa·2023년 2월 17일
0
post-thumbnail

📝 Typescript로 블록체인 만들기 : From #4.0 to #4.1

객체지향 프로그래밍을 이해합니다.
JS와 TS의 차이점
protected, private, public 필드를 사용합니다.
JS에서 쓰던 constructor 작성을 하지 않고, 각 필드가 어떠한 보호등급인지(접근제어자), 이름, 그리고 타입만을 작성합니다.
클래스와 같은 객체지향 기술을 이해합니다.
객체지향 프로그램과 TS는 추상 클래스(Abstract Class)를 지원합니다.
클래스의 상속은 JS에서도 보여집니다.
기본적으로 public입니다
클래스 내부에서만 사용되려면 private
상속한 클래스들에서도 사용되려면 protected

Typescript에서의 class

- JS에서는 Constructor함수를 만들어줬어야했지만 TS에서는 필요하지 않습니다.
- TS에서는 파라미터를 작성하면 JS로 컴파일후, 
- 자동으로 Constructor함수를 만듭니다.
- private 키워드는 오로지 TS에서만 사용됩니다.
- private는 해당 클래스 내부에서만 호출할 수 있습니다.

추상 클래스 (Abstract Class)

- 추상 클래스는 다른 클래스가 상속받을 수 있는 클래스 입니다.
- 추상 클래스로는 직접 새로운 인스턴스를 만들 수 없습니다.
- 오직 다른 곳에서 상속받을 수 있는 클래스입니다.

추상 클래스 내부의 메소드

- 상속받은 클래스에서는 추상클래스 내부 메소드를 사용할 수 있습니다.
- private 및 public은 프로퍼티 뿐만 아니라 메소드에서도 작동합니다.

추상 메소드 (Abstract method)

- 추상 메소드는 메소드를 클래스 안에서 구현하지 않으면 됩니다.
- 메소드의 implementation(구현)
- 메소드는 클래스 안에 존재하는 함수입니다.
- 추상 클래스 안에서는 추상 메소드를 만들 수 있습니다.
- 하지만 추상 클래스 안에 추상 메소드를 구현하지 않고,
- 메소드의 call signature만 작성합니다.
- 추상 메소드는 추상 클래스를 상속 받은 모든 것들이 구현해야하는 메소드를 의미합니다.
- private 프로퍼티는 해당 클래스를 상속하였을지라도, 
- 해당 프로퍼티에 접근할 수 없습니다. 
ex) Player가 User를 상속받지만 Player에서
this.nickname을 접근할 수 없습니다.
- 필드를 보호하기 위한 방법은 private과 
protected 2가지 입니다.
- private는 User 클래스의 인스턴스나 메소드에서 접근할 수 있지만
- 추상클래스는 인스턴스화 할 수 없습니다.
- 필드가 외부로부터 보호되지만, 다른 자식 클래스에서 사용되기를 원하면 private을 쓰지 않습니다. 대신, protected를 사용합니다.

해시맵 만들기

- 해싱 알고리즘을 만드는 해시맵입니다.
- 제한된 양의 프로퍼티 혹은 key를 가지는 타입을 정의할때 사용하는 방법입니다.
//object의 type을 선언하는 방식
//제한된 양의 프로퍼티만을 가질 수 있으며
//프로퍼티의 이름은 모르지만, type만 알고있을때 사용합니다.
type Words = {
	[key:string]:string
}

let dict:Words = {
	"apple" : "sweet fruit",
  	"dog" : "animal"
}

클래스를 타입으로 사용할 수 있고, 파라미터는 인터페이스와 관련있다.

profile
📌 FE 공부 정리 공간입니다.

0개의 댓글