LoginSignup
6
1

More than 5 years have passed since last update.

TypeScript target指定による挙動の違い

Last updated at Posted at 2017-01-15

  • tscのときのtarget指定の意味を整理する。

targetとは

TypeScriptの記述について

  • 上位の仕様で記述して、下位の仕様をtarget指定した際に、その仕様に変換してくれる場合と、エラーになる場合がある。
  • 例)tsで、ES6の記述をして、target=es3やtarget=es5でコンパイルした際に、その仕様に変換してくれる場合と、エラーになる場合がある。

変換してくれる例)

es6.ts
const NUM = 1;

var str = `あ
い
う`;

var [name2, age] = ['a', 3];

↓ tsc --target es3 es6.ts

es3.js
var NUM = 1;
var str = "\u3042\n\u3044\n\u3046";
var _a = ['a', 3], name2 = _a[0], age = _a[1];

↓ tsc --target es6 es6.ts

es6.js
//こっちはtsの記述から変化なし
const NUM = 1;
var str = `あ
い
う`;
var [name2, age] = ['a', 3];

エラーになる例)

es6-2.ts
//generator
function* gfn(n){
    n++;
    yield n;
    n++;
    yield n;
}

//map
let map = new Map();
map.set('key1', 'value1');

↓ tsc --target es3

error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
error TS2304: Cannot find name 'Map'.
6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1