angulartypescriptangular10

Property 'replaceAll' does not exist on type 'string'


I want to use replaceAll in typescript and angular 10.

But I get this error: Property 'replaceAll' does not exist on type 'string'.

This is my code:

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

Output: 13990608

How can fix my typescript to show me this function?


Solution

  • You should be able to add those typings through your tsconfig.json. Add "ES2021.String" to lib inside compilerOptions.

    Your tsconfig should then look something like this:

    {
        ...,
        "compilerOptions": {
            ...,
            "lib": [
              ...,
              "ES2021.String"
            ]
        }
    }
    

    The replaceAll method is defined inside lib.es2021.string.d.ts as follows:

    interface String {
        /**
         * Replace all instances of a substring in a string, using a regular expression or search string.
         * @param searchValue A string to search for.
         * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.
         */
        replaceAll(searchValue: string | RegExp, replaceValue: string): string;
    
        /**
         * Replace all instances of a substring in a string, using a regular expression or search string.
         * @param searchValue A string to search for.
         * @param replacer A function that returns the replacement text.
         */
        replaceAll(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
    }