I have the following structure:
project
 |- types
    |- global.d.ts
    |- string.d.ts
    |- wdio.d.ts
 |- src
    |- Models
    |- Resources
    |- Components
    |- Extensions
       |- string.ts
    |- ...
 |- tsconfig.json
 |- wdio.conf.js
I try to extend the string's prototype with a function. I tried so far a lot of way, I found on several sites. But either the tsc gives me error, or the PHPStorm shows error message. 
// types/string.d.ts
declare interface String {
    myCustomFn(text : string) : string;
}
// src/Extensions/string.ts
String.prototype.myCustomFn = function(text : string) : string {
    // ... Logic
    return 'myCustomFn';
};
// tsconfig.json
...
    "typeRoots": ["./types/"],
    "include": [
      "./src/**/*.ts",
      "./types"
    ]
...
// wdio.conf.js
...
before: function (capabilities, specs) {
    require('ts-node').register({ files: true });
    require('../extensions/String');
},
...
I added the augmentation for the String class to the d.ts file. Then I define the body of the function in a separate file. When I implement it in the src/Extensions/string.ts file, the tsc command gives no error message, BUT the PHPStorm shows the following error:
TS2339: Property 'myCustomFn' does not exist on type 'String'.
Moreover, anywhere in the code the auto-completition shows my method, and even the code can be executed, and uses the myCustomFn function. 
Questions:
- Is this just an error of the IDE?
- Am I doing something wrong or should the way, how the String class is being extended be in different way?
 
    