Typescript扩展方法编译但不在运行时工作

时间:2016-05-25 13:07:11

标签: javascript node.js typescript ecmascript-6

我用一个简单的方法扩展了Typescript中的String原型:

StringExtensions.ts

String.prototype.toCleanedTitleCase = function ():string {
    let titleCase = this.replace(/\w\S*/g, function (txt) {
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
    })
    return titleCase.replace(new RegExp(" ", 'g'), "").replace(new RegExp("-", 'g'), "")
}

然后在定义文件中添加了一个接口:

StringExtensions.d.ts

interface String {
    toCleanedTitleCase():String;
}

然后调用它:

index.ts

console.log(("Some string that needs a-sorting").toCleanedTitleCase();

所有编译都很好,但是当我运行我的应用程序(节点js)时,我得到“xxx.toCleanedTitleCase”不是一个函数。

我缺少什么想法?

0 个答案:

没有答案