본문 바로가기
TypeScript

ESNext의 주요 문법

by Seong-Jun 2023. 11. 1.
728x90
반응형
SMALL

ESNext의 주요 문법

1. 비구조화 할당

let person = {name: "Jane", age: 22}
let {name, age} = person // name: "Jane", age: 22

let array = [1, 2, 3, 4]
let [head, ...rest] = array // head = 1, rest = [2, 3, 4]

let a = 1, b = 2;
[a, b] = [b, a] // a = 2, b = 1


2. 화살표 함수

function add(a, b) {return a + b}
const add2 => (a, b) => a + b


3. 클래스

ESNext에서는 객체지향 프로그래밍을 지원
객체지향프로그래밍은 캡슐화, 상속, 다형성이라는 세 가지 요소가 있음

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: Aniaml[] = [new Cat('야옹이', 2), new Dog('멍멍이', 3)]
let sounds = animals.map(a =>a.say()) // ["야옹", "멍멍"]


ES5 JS로는 위와 같은 형태의 코드를 작성할 수 없다


4. 모듈

모듈은 코드를 여러 개의 파일로 분할해서 export키워드를 통해 다른 파일에서도 사용할 수 있는 장점이 있다(다른 파일에서 가져올 때는 import키워드 사용)

import * as fs from 'fs'
export function writeFile (filepath: string, content: any) {
	fs.writeFile(filepath, content, (err) => {
		err && console.log('err', err)
	})
}


5. 생성기

TS, Python, PHP 같은 몇몇 프로그래밍 언어에서는 yield라는 키워드 제공
반복기를 생성할 때 사용. 반복기는 독립적으로 존재하지 않고 반복기 제공자를 통해 얻는다.
yield문을 이용해 반복기를 만들어 내는 반복기 제공자를 생성기라고 함.

생성기는 function*과 yield키워드를 이용해 만듦. TS에서 yield는 function* 함수 내부에서만 사용 가능

function* gen() { // function*: 생성기				1번
	yield* [1, 2]					// 	2번
}
for (let value of gen()) {console.log(value)} // 1, 2		3번


실행순서 1 -> 2 -> 3(1) -> 2-> 3(2)

 

6. Promise와 async/await구문

Promise는 비동기 콜백 함수를 상대적으로 쉽게 구현할 목적으로 만들어짐

async function get() { // async 함수 수정자
	let values = []
	values.push(await Promise.resolve(1))
	values.push(await Promise.resolve(2))
	values.push(await Promise.resolve(3))
	return values
}
get().then(values => console.log(values)) // [1, 2, 3]
728x90
반응형
LIST

'TypeScript' 카테고리의 다른 글

[Typescript] 타입스크립트 변수 선언  (0) 2023.11.10
[Typescript] 타입스크립트 모듈이해  (0) 2023.11.10
[TypeScript] 개발환경 구성하기  (0) 2023.11.10
타입스크립트의 주요 문법  (1) 2023.11.01
TypeScript란?  (1) 2023.11.01

댓글