官术网_书友最值得收藏!

Using future JavaScript features

There is another benefit of TypeScript that is important to understand. TypeScript allows us to use some features in JavaScript that haven't yet been adopted by all browsers but still target those browsers. TypeScript achieves this by transpiling the use of these features down to JavaScript code that the targeted browser does support.

As an example, let's look at the exponentiation operator (**) in ES7, which isn't supported in IE. Let's create a file called future.ts and enter the following code:

var threeSquared: number = 3 ** 2;
console.log(threeSquared);

When we run the program in a browser, it should put 9 into the console. Before we do that, let's run the code against the TypeScript compiler to get the transpiled JavaScript. Run the following command in a terminal in the same directory as future.ts:

tsc future

This should generate a file called future.js with the following content:

var threeSquared = Math.pow(3, 2);
console.log(threeSquared);

So, TypeScript converted the exponentiation operator to a call to the Math.pow function, which is supported in IE. To confirm that this works, paste the generated JavaScript code into the console in IE and the output should be 9.

This example is purposely simple but probably not that useful. Async/await, spread operators, rest parameters, and arrow functions are far more useful features that IE doesn't support but TypeScript allows the use of. Don't worry if you don't know what the features in the last sentence are, as we'll cover them when we need them in the book.

主站蜘蛛池模板: 澄江县| 太仆寺旗| 福贡县| 东乌珠穆沁旗| 南靖县| 勃利县| 新绛县| 泸西县| 盐城市| 邯郸市| 天全县| 高邑县| 西乌珠穆沁旗| 庆元县| 广安市| 托克托县| 都昌县| 龙山县| 福泉市| 五峰| 琼结县| 永靖县| 承德县| 吉林省| 乐安县| 明水县| 包头市| 盘锦市| 北辰区| 涿鹿县| 云林县| 新泰市| 石首市| 巢湖市| 门头沟区| 东兴市| 兴宁市| 宜黄县| 西贡区| 青海省| 肥西县|