Pisownia
Temat: [TypeScript] Sprawdzenie, czy obiekt implementuje określony interfejs

----------------------------------------------



Dla treningu tworzę edytor diagramów i w ramach rozwoju zdecydowałem się za skorzystanie z TypeScriptu, chociażby dlatego, że implementuje nowości nieobsługiwane jeszcze w przeglądarkach i transpiluje je do ECMAScriptu 5.



Chciałbym, aby niektóre bloki mogły mieć zmieniany rozmiar, a inne nie, dodatkowo niektóre np. tylko jednocześnie w pionie i poziomie ("po skosie").



Pierwsze, co nasuwa mi się na myśl, to stworzenie odpowiednich interfejsów, które będzie implementować klasa reprezentująca dany blok - ResizableHorizontal, ResizableVertical, ResizableDiagonal.



Niestety TypeScript nie pozwala na dynamiczne sprawdzenie, czy obiekt implementuje interfejs.

(I tak - nie miałem pomysłu na tytuł wątku.)

Więc jedyne, co mi pozostaje, to umieszczenie w bazowej dla wszystkich bloków w klasie wielu pól typu Boolean - isHorizontalResizable, isVerticalResizable... a to jakoś nie wygląda dobrze.



Proszę o sugestie, jak można zaimplementować to jakoś ładniej. :)

Dodaj do słownika