在JavaScript中扩展String.prototype

时间:2018-05-18 08:51:30

标签: javascript visual-studio-code intellisense

我已经开始在JavaScript中将我的字符串相关函数作为扩展方法,

我的问题是,当我添加如下所示的扩展方法时,该方法可以正常运行,但它不会出现在VS Code的Intellisense中。

String.prototype.format = function() {
    let str = this.toString()
    if (arguments.length) {
        const type = typeof arguments[0]
        const args = type === 'string' || type === 'number' ? Array.prototype.slice.call(arguments) : arguments[0]

        for (const arg in args) str = str.replace(new RegExp(`\\{${arg}\\}`, 'gi'), args[arg])
    }
    return str
}

例如,如果我在.js文件中定义扩展名然后导入文件,我希望看到像“test”.format 这样的方法,但我看不到方法。

1 个答案:

答案 0 :(得分:0)

创建一个包含函数类型声明的文件index.d.ts

interface String {
    format(): string;
}

有关详细信息,请参阅JavaScript Language Service in Visual Studio