ESNext 는 (es6부터는 발표 연도를 붙여 ECMAScript2015 -줄여서 ES2015 이렇게 부르기로 표준을 정함, 1년주기로 새로운 버젼 발표.) 클래스 기능을 제공해 C++, JAVA 언어에서 사용하는 객체지향 프로그래밍을 지원합니다.
객체지향 프로그래밍은 프로그래밍언어가 '캡슐화 encapsulation ', 'Inheritance 상속성', 'polymorphism 다형성', 이라는 세가지 요소를 지원합니다.
코드예시:
abstract class Animal {
constructor(public name?: string, public age?: number) {}
abstract say(): string
}
class Cat extends Animal {
say() {return '야옹'}
}
class Dog extends Animal {
say() {return '멍멍'}
}
let animals: Animal = [new Cat('고양이',1), new Dog('강아지', 2)]
let sounds = animals.map(a =>a.say()) //["야옹","멍멍"]
위 코드를 ES5자바스크립트로는 작성하지 못합니다.
그래서 타입스크립트로 작성한 후 , 자바스크립로 적용하여 콘솔창으로 sounds를 확인해보면 ["야옹","멍멍"] 이 나오는 것을 확인 할 수 있습니다.