typescript - Egenskapen 'trimLeft' finns inte på typen 'string'. Bibliotek: ["dom", "es2018"]
Jag får detta fel när jag kör följande kod
let foo = ' foo '
console.log(foo.trimLeft())
//foo.trimStart() works neither
Jag vet att de flesta lösningarna på internet säger att jag måste fixa min tsconfig.json för att inkludera es20whatever.
Det roliga är att jag kan använda es2018-grejer som Promise.prototype.finally och rest spread osv. VSCode kompletterar också automatiskt trimStart() för mig vilket är konstigt, eftersom projektet och editorn borde använda samma tsconfig.json. Men denna specifika kodstycke kompilerar inte.
Här är min tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"baseUrl": "./",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": ["node_modules/@types"],
"lib": ["es2018", "dom"],
"plugins": [
{
"name": "tslint-language-service",
"configFile": "./tslint.json"
}
],
"paths": {
"foo": ["projects/foo/src/public_api.ts"],
"bar": ["projects/bar/src/public_api.ts"],
"baz": ["dist/baz"]
}
}
}
Jag kör detta i en monorepo Angular-mapp (som du kan se ovan). Kanske finns det ett problem med det, det vet jag inte.
Svar #1
Inkludera biblioteket "es2019.string". Uppdatera din kopia av Typescript om det inte finns ett sådant bibliotek. Det är ganska nytt och fanns inte när denna fråga ställdes.
Svar #2
Uppdatera TypeScript-biblioteket till "typescript": "~3.6.2". Inkludera "es2019" i tsconfig.json lib-arrayen. Det kommer att fungera.
"target": "es2015",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"es2019",
"dom"
]
