Jest możliwość w TypeScript zablokowania mozliwosci ustawiania wlasciwosci obiektu, których nie ma zdefiniowanych w klasie ? np. mam klasę Point { x: int; y: int } i nie chcę by można było ustawić point.z = 1;
Może od d--y strony się za to zabieram, ale ogólnie tworzę sobie model zapytania z walidacją i nie chcę dopuścić do sytuacji, ze do repozytorium, a tym samym dalej do bazy przejdzie wlasciwosc, ktorej ma nie byc na danym zapytaniu. Wiem, że mogłbym pojedynczo pola wyjmowac w kontrolerze / repo, ale chciałbym to zrobic jednak jakos bardziej uniwersalnie. Niech ktos madry nakieruje mnie na poprawne rozwiazanie :)
@tomash-pl: udało mi się to rozgryźć przez bibliotekę do walidacji którą używam (class-validator) podając opcję whitelist: true :) Wcześniej szukałem czegoś podobnego w class-transformerze, którego używam na middleware, ale nic takiego nie znalazłem. Ważne, że koniec końców efekt osiągnięty
@nilphilus: ja żadnego pytania nie zadawałem, ale i autor pytania wyraził się dość precyzyjnie:
np. mam klasę Point { x: int; y: int } i nie chcę by można było ustawić point.z = 1; Nie widzę tu nigdzie założenia, że nie mogę również modyfikować pól x oraz y, a freeze tak właśnie zadziała.
Może od d--y strony się za to zabieram, ale ogólnie tworzę sobie model zapytania z walidacją i nie chcę dopuścić do sytuacji, ze do repozytorium, a tym samym dalej do bazy przejdzie wlasciwosc, ktorej ma nie byc na danym zapytaniu. Wiem, że mogłbym pojedynczo pola wyjmowac w kontrolerze / repo, ale chciałbym to zrobic jednak jakos bardziej uniwersalnie. Niech ktos madry nakieruje mnie na poprawne rozwiazanie :)
#typescript #nodejs #javascript #naukaprogramowania
Bez żadnej libki.
np. mam klasę Point { x: int; y: int } i nie chcę by można było ustawić point.z = 1;Nie widzę tu nigdzie założenia, że nie mogę również modyfikować pól x oraz y, a freeze tak właśnie zadziała.