dev_chae.log
로그인
dev_chae.log
로그인
TS 4.0~ 4.5
은채
·
2022년 9월 24일
팔로우
0
0
NOMAD CODERS
목록 보기
9/9
Classes
Player 클래스를 만들 때,
JS => constructor 안에 this 형식으로 만들어준다
TS => 파라미터를 작성하면, constructor 를 자동으로 만들어준다
TS => private 혹은 public property를 만들 수 있다 (자바스크립트로 컴파일 되지 않음)
nickname 만 사용할 수 있게 만들어준다
추상클래스
다른 클래스가 상속받을 수만 있는 클래스
직접 새로운 인스턴스를 만들 수는 없음
추상클래스 안의 메서드
pivate, public 도 작동 가능 ( 자바스크립트에서는 무시되고 실행되니 문제가 됨 )
추상메소드
메소드 : 클래스 안에 존재하는 함수
메소드를 클래스 안에서 구현하지 않고 메소드의 call signature 만 적는 것
구현 부분 :
해보기
User 추상 클래스가 getNickName 이라는 추상 메소드를 갖는다
이 메소드의 리턴값은 void
call signature 만 작성
이를 상속받은 Player 클래스에서는 getNickName을 구현해야 함
즉, 추상 메소드는 추상 클래스를 상속받는 모든 것들이 구현을 해야 하는 메소드
Protected
private
해당 클래스의 인스턴스, 메소드에서는 접근이 가능하지만 추상 클래스의 경우 인스턴스화 할 수 없음
필드가 외부로부터는 보호되지만, 다른 자식 클래스에서는 사용되기를 원한다면 사용 할 수 없음
아예 밖에서는 사용 할 수 없지만, 상속받은 클래스 안에서는 사용 할 수 있음
public 프로퍼티를 보여주고는 싶지만, 수정을 할 수 없게 만드려면?
readonly 사용하기
Interface
type vs interface
type 의 경우 단일한 타입 / 배열 / 객체의 형태를 가질 수 있다.
interface 의 경우 객체 형태만 가능하다
typed의 상속, 연산자를 사용함
interface의 상속, 클래스와 비슷함
객체지향 프로그램의 개념을 활용해서 디자인되었기 때문에 비슷
interface는 property 축적이 가능
같은 이름으로 3개의 인터페이스를 만들었지만, 타입스크립트가 하나로 합쳤다
type 에서는 불가능
interface 는 컴파일 시 js로 바뀌지 않고 사라진다.
추상클래스 인터페이스로 바꾸기
implements 를 사용한다!
JS로 컴파일 시 User 인터페이스가 컴파일 되지 않아 매우 가벼워짐 ~
User 인터페이스를 상속받은 Player 클래스
에러가 계속 발생 => 인터페이스를 상속할 때는 property를 private/protected 로 만들지 못함
public 으로만 사용할 수 있음
여러 인터페이스 동시에 사용하기
함수에서 사용해보기
argument에 인터페이스를 사용하여, argument의 객체 모양을 지정하기
return 에도 인터페이스를 사용할 수 있음
new 형식이 아닌, interface 내의 내용을 그대로 작성해주면 됨!
은채
반반무마니
팔로우
이전 포스트
TS 3.0 ~ 3.4
0개의 댓글
댓글 작성