typescript - Angular 4 bruk ES2017 (f.eks. string.prototype.padStart)
Jeg bruker Angular 4 og jobber med en strengpipe for å fylle strenger med nuller. Men Angular eller VS Code gir feil om at prototypen "padStart" ikke eksisterer.
Hvordan sette opp denne støtten for prosjektet mitt og/eller redigeringsprogrammet?
Hvordan legger man til polyfill hvis for eksempel padStart ikke eksisterer?
https://developer.mozilla.org/no/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
Svar #1
I tsconfig.json må du oppdatere lib til å være es2017.
Mål (--target)
Angi ECMAScript-målversjon
Bibliotek (--lib)
Liste over bibliotekfiler som skal inkluderes i kompileringen.
Å endre lib til es2017 inkluderer typene for VSCode, og for kompilering kan du bruke polyfills.
Eksempel
{
"compileOnSave": false,
"compilerOptions": {
// ...
"target": "es2015",
// ...
"lib": [
"dom",
"es2017" // <-- change to use es2017
],
"paths": { ... }
}
}
Du kan finne den fullstendige listen over kompilatoralternativer i TypeScripts dokumentasjon
Angular har en rekke polyfiller som som standard er kommentert ut i polyfills.ts. Du kan fjerne kommentarene på det du trenger og legge til avhengighetene de krever ved hjelp av npm eller yarn. I ditt tilfelle trenger du bare polyfill for strengprototypen fra ES7.
Svar #2
Legg til følgende linje i din polyfills.ts:
import 'core-js/es7/string';padStart er en del av es2017 (eller es7 for kort).
Eller du kan installere mdn-polyfills-modulen og sette inn denne linjen:
import 'mdn-polyfills/String.prototype.padStart';