Dzmitryj_Black
@Dzmitryj_Black
Front-end Engineer

Как исправить отсутствие определений некоторых стандартных методов js в typescript?

Пишу кастомный пайп. На входе и выходе - строка (ожидается 9ти-значное число).

Нужно привести 123456789 к виду (12) 345-67-89.

Я пробовал:
value.splice ( 0, 0, "(" );
value.splice ( 2, 0, ") " );


Но консоль tslint выдаёт ошибку. Не определен метод для строки. Причем, в бровзере этот метод (на чистом js) срабатывает должным образом.

Может я неправильно подхожу к решению или нужно прописывать прототип функции в *.d.ts?

В общем, я не знаю, как сделать этот пайп рабочим..
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
0xD34F
@0xD34F
в бровзере этот метод (на чистом js) срабатывает должным образом

Чё-то я в это не верю.

не знаю, как сделать этот пайп рабочим

Да обычным slice'ом строку нарежьте:

`(${value.slice(0, 2)}) ${value.slice(2, 5)}-${value.slice(5, 7)}-${value.slice(7)}`
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
rockon404
@rockon404
Frontend Developer
"compilerOptions": {
    "lib": ["es6", "dom"],
}
Ответ написан
profesor08
@profesor08
Нету такого метода для строк. Такой метод есть для массивов. Строка !== Массив. Разбей строку на массив символов, крути верти их как хочешь, потом собери вместе.
let value = "123456789";
let numbers = value.split("");
numbers.splice ( 0, 0, "(" );
numbers.splice ( 3, 0, ")" );
numbers.join(""); // (12)3456789
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы