Angular 4使用ES2017(例如string.prototype.padStart)

Dom*_*nik 6 typescript angular es2017

我正在使用角度4并使用字符串管道用零填充字符串.但是角度或vs代码会丢失原型"padStart"不存在的错误.

  1. 如何为我的项目和/或编辑器设置此支持?

  2. 如果padStart不存在,如何添加polyfill?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

mtp*_*ltz 5

tsconfig.json您需要更新libes2017

目标(--target)

指定ECMAScript目标版本

库(--lib)

要包含在编译中的库文件列表。

改变libes2017在分型为VSCode拉,并编译您可以使用polyfills。

{
  "compileOnSave": false,
  "compilerOptions": {

    // ...

    "target": "es2015",

    // ...

    "lib": [
      "dom",
      "es2017" // <-- change to use es2017
    ],
    "paths": { ... }
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以在TypeScript的文档中找到编译器选项的完整列表

Angular有很多polyfill,默认情况下在中将其注释掉polyfills.ts。您可以取消注释所需的内容,并使用npm或添加他们要求的依赖项yarn。在您的情况下,您只需要ES7的字符串原型polyfill。