error TS2339: Property 'endsWith' does not exist on type 'string'

endsWith is an ES6 function so you need to target ES6 in your TypeScript compiler settings or you can add an interface for it:

interface String {    
    endsWith(searchString: string, endPosition?: number): boolean;
};

[Playground]


Here : I used VS code as an IDE
Issue was :

let fName:String = "Yokey";
console.log(fName.anchor("url"));

will result in :

PS C:\MYahya\OS_DEV\typescript_lrn\1> tsc main.ts
main.ts(2,19): error TS2339: Property 'anchor' does not exist on type 'String'.

Solution :
I should include the following tsconfig.json file in the project:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es6",
        "noImplicitAny": true,
        "strictNullChecks": true,
        "noImplicitReturns": true,
        "noImplicitThis": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "baseUrl": "../types",
        "typeRoots": [
            "../types"
        ],
        "types": [],
        "forceConsistentCasingInFileNames": true,
    }
}

Then I used tsc (without file name) so the transpiler would use the tsconfig.json to transcompile all type script files hosted in the directories to js files.


While compiling your typescript code, please point the target to ES6.

tsc --target ES6 "filename"