사용자 도구

사이트 도구


typescript:class

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
typescript:class [2018/08/04 01:16] – [Abstract Class] taekgutypescript:class [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1
줄 40: 줄 40:
 book.printInfo();</code> book.printInfo();</code>
 위의 코드는 Java에서 우리가 익히 보아왔던 class의 형태입니다. 생성자를 표현하는 부분이 좀 생소하지만 쉽게 이해할 수 있을 듯 합니다. 위의 코드는 Java에서 우리가 익히 보아왔던 class의 형태입니다. 생성자를 표현하는 부분이 좀 생소하지만 쉽게 이해할 수 있을 듯 합니다.
 +==== constructor ==== 
 +Typescript의 Class에서 constructor는 특별하게 보아야 한다. constructor의 파라메터에서 class의 property로 선언된다.(물론 new연산자의 파라메터를 받는다.) 
 +<code javascript> 
 +class Greeter { 
 +    constructor(public greeting: string, private myService: HelloServe) {} 
 +    greet() { 
 +        return "Hello, " + this.greeting; 
 +    } 
 +
 +</code>
 ==== Inheritance ==== ==== Inheritance ====
 일반적인 객체지향언어의 Inheritance 개념 역시 TypeScript에도 사용할 수 있습니다. 다음의 코드를 보죠. 일반적인 객체지향언어의 Inheritance 개념 역시 TypeScript에도 사용할 수 있습니다. 다음의 코드를 보죠.
줄 170: 줄 179:
 <code javascript> <code javascript>
 class Book { class Book {
- 
     public readonly btitle: string;     public readonly btitle: string;
- 
     constructor(btitle: string) {     constructor(btitle: string) {
         this.btitle = btitle;         this.btitle = btitle;
     }     }
- 
 } }
- 
 let book:Book = new Book('젊은 베르테르의 슬픔'); let book:Book = new Book('젊은 베르테르의 슬픔');
 +book.btitle = '파우스트';   // 코드 에러</code>
  
-book.btitle = '파우스트';   // 코드 에러</code> 
 다음의 예제처럼 생성자의 parameter를 readonly로 선언하면 따로 class의 property로 선언할 필요가 없습니다. 다음의 예제처럼 생성자의 parameter를 readonly로 선언하면 따로 class의 property로 선언할 필요가 없습니다.
 <code javascript> <code javascript>
 class Book { class Book {
- 
     constructor(readonly btitle: string) {     constructor(readonly btitle: string) {
         this.btitle = btitle;         this.btitle = btitle;
     }     }
- 
 } }
- 
 let book:Book = new Book('젊은 베르테르의 슬픔'); let book:Book = new Book('젊은 베르테르의 슬픔');
- +console.log(book.btitle); 
-console.log(book.btitle); </code>+</code>
 ==== Static Property ==== ==== Static Property ====
 static 키워드 역시 사용할 수 있습니다. ECMAScript 2015에서는 static을 method에만 적용할 수 있었지만 TypeScript는 property에도 적용할 수 있습니다. static property는 class의 이름으로 직접 access를 할 수 있습니다. static 키워드 역시 사용할 수 있습니다. ECMAScript 2015에서는 static을 method에만 적용할 수 있었지만 TypeScript는 property에도 적용할 수 있습니다. static property는 class의 이름으로 직접 access를 할 수 있습니다.
줄 238: 줄 240:
 book.printInfo();</code> book.printInfo();</code>
 ==== interface의 의미로 class사용 ==== ==== interface의 의미로 class사용 ====
 +이 부분은 기존의 다른 언어와 다릅니다. class를 확장해서 interface를 정의할 수 있습니다. 다음의 코드를 참조하세요
 +<code javascript>
 +class Book {
 +
 +    btitle: string;
 +
 +}
 +
 +interface EBook extends Book {
 +
 +    bauthor: string;
 +}
 +
 +let book:EBook = {
 +    btitle: '파우스트',
 +    bauthor: '괴테'
 +};
 +</code>
typescript/class.1533345390.txt.gz · 마지막으로 수정됨: 2025/04/15 10:05 (바깥 편집)