Wpis z mikrobloga

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 :)

#typescript #nodejs #javascript #naukaprogramowania
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
@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.
  • Odpowiedz