• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

변수들이 var로 변합니다.

23.03.28 16:14 작성 조회수 315

0

ano.ts

// 타입 주석
const a: number = Number("1");
//const b: string = 'hi ts';
const b: string = String(123);
const c: boolean = true;

// any - 다들어감 어떤 것이든.. 피하자
// number - int Long(big int ) smallint
// string - "" '' ``
// boolean - true false 만 .... 0 1 은 아님 
// object - {} any .. 쓰지마세요!! 모든 에러의 근원이 될 수 있습니다!!

// 타입 추론
let d = 1;
//d = "hi"

위와 같이 ts 파일을 작성하고

터미널에 tsc를 입력해서 js 파일로 변환하니까

ano.js

"use strict";
// 타입 주석
var a = Number("1");
//const b: string = 'hi ts';
var b = String(123);
var c = true;
// any - 다들어감 어떤 것이든.. 피하자
// number - int Long(big int ) smallint
// string - "" '' ``
// boolean - true false 만 .... 0 1 은 아님 
// object - {} any .. 쓰지마세요!! 모든 에러의 근원이 될 수 있습니다!!
// 타입 추론
var d = 1;
//d = "hi"

이렇게 변수들이 var로 변하네요.

강사님이 올려주신 깃 저장소의 코드는 이렇지 않던데 저는 왜 var로 변하는 걸까요?

 

답변 1

답변을 작성해보세요.

0

alice님의 프로필

alice

질문자

2023.03.28

자문자답 합니다. tsconfig.json 파일의
"target" 을 "ES5"에서 "ES2022" 로 변경하니
js 파일로 변환되어도 var로 변하지 않네요.

먼저 질문주셔서 감사합니다 :)

답이 이미 나온 것 같지만 상세설명을 하자면, 타입스크립트는 다음과 같은 순서를 따릅니다.

  1. 타입스크립트 코드 작성

  2. 자바스크립트 파일로 변환 (트랜스파일이라고 합니다.)

  3. 변환된 자바스크립트 파일이 Node.js에서 실행

여기서 자바스크립트를 어떤 버전으로 변환할지가 target 옵션입니다.
자바스크립트는 크게 ES6 이전과 이후로 나뉩니다.
ES6 이전에는 var를 사용하였고 ES6부터는 let, const를 사용합니다 :)

추가설명
과거 자바스크립트는 '넷스케이프 자바스크립트'와 '마이크로소프트 자바스크립트' 2가지 버전이 있었습니다. 이를 통합하고자 출시된 것이 'ECMA Script' 입니다. 흔히 ES 라고 부르는 것입니다. 즉 자바스크립트의 표준입니다.

ES1 -> ES2 -> ES3 -> ES4 (지원 부족으로 폐기됨) -> ES5 -> ES6 ... 를 거쳐 현재 ES13 까지 출시됐고 매 버젼마다 추가기능이 생깁니다. ES6는 특히 변경사항이 매우 많이 때문에 ES6부터 ES6+(모던 자바스크립트)라고 부르기도 합니다.

보통 'ES + 버전' 으로 이름을 붙이지만 'ES + 출시년도'로 붙이기도 합니다.
예를들어 ES6는 2015년에 출시되었기 때문에 ES6 = ES2015 입니다.
수강생분께서 언급하신 ES2022는 13버전이기 때문에 ES13 = ES2022 입니다.