9
votes

La propriété 'replaceAll' n'existe pas sur le type 'string'

Je veux utiliser replaceAll dans dactylographié et angulaire 10 mais j'obtiens cette erreur La propriété 'replaceAll' n'existe pas sur le type 'string'
mon code est comme ça

let date="1399/06/08"
console.log(date.replaceAll('/', '_'))

sortie: 13990608
comment puis-je corriger mon tapuscrit pour me montrer cette fonction ??


4 commentaires

TypeScript ne peut pas par magie ajouter une fonction que votre navigateur n'implémente pas. Vous devrez implémenter l'une des méthodes de remplacement mentionnées dans la question liée dans la réponse de Michael D.


date.split('/').join('_') vous pouvez l'utiliser dès maintenant. Bien que vous puissiez mettre à jour vers chrome85.


Je veux utiliser dans vscode J'ai cette erreur dans vscode


@behroozbc vous pouvez essayer avec la dernière version dactylographiée.


4 Réponses :


6
votes

À partir de la documentation :

Depuis août 2020, la méthode replaceAll() est prise en charge par Firefox mais pas par Chrome. Il deviendra disponible dans Chrome 85.

En attendant, vous pouvez trouver plusieurs autres méthodes ici .

Capture d'écran pour les futurs lecteurs potentiels:

entrez la description de l'image ici


3 commentaires

comment puis-je corriger mon tapuscrit pour me montrer cette fonction ??


Voir aussi caniuse.com/#feat=mdn-javascript_builtins_string_replaceall


@behroozbc: AFAIK, replaceAll() est de la spécification ES2021. Si la dernière version de TS ne le prend pas en charge, vous ne pouvez pas faire grand-chose sauf utiliser l'une des autres méthodes.



11
votes

Vous pouvez résoudre le problème en utilisant RegExp et le drapeau global

"1399/06/08".replace(/\//g, "_") // "1399_06_08"


0 commentaires

0
votes

Chrome prend en charge replaceAll, donc son utilisation est sûre. Cependant, dactylographié émet toujours une erreur, vous pouvez donc convertir votre chaîne en n'importe quel, afin de surmonter cet obstacle.

const date: any ="1399/06/08"
console.log(date.replaceAll('/','_'))

Merci, Mansour de m'avoir corrigé.


1 commentaires

avertissement: manquant) sur la ligne 2



1
votes

Utilisez simplement cette fonction

    let date="1399/06/08"
    
    console.log(date.split('/').join('_'))


0 commentaires