I ended up running into another issue later in the day that made me see what was happening here. From the top, here it is...
TypeScript is built on top of JavaScript, so like @Nypan says JavaScript is valid TypeScript. Because of this the differences are very easy to overlook.
A JavaScript function like this references the scope that the function executes in with "this".
var f = function (postFix) {return this + postFix};
To add TypeScript syntax you would define types
var f = function (postFix: string): string {return this + postFix};
In both of these cases this refers to the scope of the function just like classic JavaScript. However, things change when we do this...
var f = (postFix: string): string {return this + postFix};//or more correctlyvar f = (postFix: string): string => {return this + postFix};
When you remove the function from in front of the parameters then it is no longer a classic function. It becomes a "Fat Arrow" function, apparently even with out using the "=>" syntax. In the examples above "this" now refers to the class that the function exists in like in C#.
In my attempt to assign a function to the prototype of string I omitted the function keyword so it was interpreted as a "Fat Arrow" function and tries to bind this to the scope of the class. However the function dose not exist in a class and causes the error "_this is not defined".
When I add the "function" keyword, the function is interpreted as I intended and works correctly.
interface String { format: () => string;}String.prototype.format = function () : string { var formatted = this; for (var i = 0; i < arguments.length; i++) { formatted = formatted.replace( RegExp("\\{"+ i +"\\}", 'g'), arguments[i].toString()); } return formatted;};