[TypeScript] Using ES6 and ESNext with TypeScript

TypeScript is very particular about what is and isn't allowed in a TS file to protect you from common developer errors. By default if you set the compile target to ES5 it only allows you to use globally defined variables that were available in the ES5 time-frame. That said it is super easy to configure TypeScript to use ES6 or ESNext using the liboption.

We also cover how to make sure that these features work across the widest range of browsers using a simple polyfill.

 

Sometime, you use "Promise", typescript reports error that Cannot find defination for Promise. 

To solve this problem, you can change in tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "outDir": "lib",
    "lib": [
      "dom",
      "es2017"
    ]
  },
  "include": [
    "src"
  ]
}

Add a "lib" tag, and add "es2017" or "es6" into the array. This can help to solve the "Promise" (or any features not existing in es5).

 

Second way to do it is polyfill.

Install:

npm i -D core-js

 

In your code, just import 'shim' from 'core-js':

import "core-js/shim";
const foo = () => Promise.resolve(null);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值