J'ai vu cette erreur mentionnée en ce qui concerne les tableaux de chaînes mais pas les chaînes réelles. J'ai un fichier TypeScript avec la ligne
if (!bus.lineInfo.PublishedLineName.includes(input)) {
Cela me donne une erreur de
TS2339: Property 'includes' does not exist on type 'string'.
bus
est une variable qui implémente l'interface bus
:
interface bus {
"lineInfo": {
"PublishedLineName": string,
"DestinationName": string, // The headsign of the bus
"Color": string,
"TextColor": boolean | string // false if this is "FFFFFF", otherwise it's the color
},
"warnings": boolean | busWarnings
"marker"?: google.maps.Marker,
"result"?: JQuery // The search result that appears in the sidebar
}
lineInfo.PublishedLineName
Est déclaré en tant que string
et String.prototype.includes()
est une fonction selon MDN , alors pourquoi le compilateur TypeScript se plaint-il de la propriété manquante /méthode?
Vous devez ajouter es2016 ou es7 lib
complierOptions dans tsconfig.json. TypeScript par défaut ne supporte pas certaines fonctions es6 polyfill
{
"compilerOptions": {
...
"lib": [
"dom",
"es7"
]
}
}
Ou changez la cible de build en es2016 si vous ne souhaitez plus supporter ES5
{
"compilerOptions": {
...
"target" "es2016"
}
}