Расширение String.prototype в JavaScript - PullRequest
0 голосов
/ 18 мая 2018

Я начал делать свою функцию, связанную со строками, как методы расширения в JavaScript,

Моя проблема в том, что когда я добавляю метод расширения, как показано ниже, метод работает, но он не отображается вIntellisense VS Code.

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".формат но я не вижу метода.

1 Ответ

0 голосов
/ 18 мая 2018

Создайте файл index.d.ts, содержащий объявление типа вашей функции:

interface String {
    format(): string;
}

Для получения дополнительной информации см. Служба языка JavaScript в Visual Studio

...