класса с него удаляется прототип. И метода класса становлятся недоступны. ТС этого не видит
https://www.typescriptlang.org/play?#code/JYOwLgpgTgZghgYwgAgGIHt0ElkG8BQyRyAJugMoC2YAFgBQCUAXMiAK6UBG0+AvvvgQAbOAGdRaTMmCUADkIiUI4CRmx5CxMlVqMNxA8igQwbKCGQBWANyai-foPQhRYZJzhRkAXmR0YmCxqWAw+AHz6xAjOrsgwAMLosgCePngAdJkB6Ly2BnZGJmYWCUnJ6drU9Ay2jk4u6ArpQugA5nQeUHQgEADukuiMDAxAA
Я обычно делаю метод clone, в котором return new Class()
А нету какой то тулы, чтобы подсветила мне такие опасные места? А то про это можно и забыть.
ну ts же и подсвечивает )
В том и дело, что нет.
А, потому что у тебя там интерфейс, он думает что это объект. Замени FooI на Foo
Так это обычный код для абстракции. Что не юзать интерфейсы теперь?
Надо подумать, наверняка что то есть
Получается спред юзать не безопасно, если юзаем прототипы(классы)
ну это да, по этому у классов делают clone. Просто я всегда делал так и не задумывался о причинах
хорошо бы иметь линт который при спреде на интерфейсе смотрел на все реализации, и если там есть прототипы - ругался.
Достаточно смотреть есть ли конструктор в интерфейсе
спред работает через итератор. можно определить кастомный итератор для класса, чтобы поугорать над тем, как коллеги дебажат и седеют
тупо кек пек да?🌚
ага
Обсуждают сегодня