Ano, presne preto, aby sa to nemuselo riesit source generatormi. Isteze source generatori su sposob, ako vies vyriesit vela veci, ale je to imho najhorsi sposob, ked uz nic ine nezostava. (Anders Hejlsbers im branil takmer 15 rokov, cize niesom sam, kto si to mysli.)
Ja si naopak myslim, ze source generatori su cesta ako do jazyka dostat nove featury, ked ich potrebujes a sucasne ho nezaplevelit.
Inac taky F# ma source generatori uz poriadne dlho (pocul som o nich pred 7 mimi rokmi), len ich nazyvaju type provideri, no technicky je to to iste.
by si musel napisal ako netypovy kod
V tomto pripade, ked nechces pouzit source genertori tak pouzijes kniznicu AnyOf. Co sa tyka WCF tak to zvlada polymorfizmus co je za mna semantickejsie rienie.
omyl. Enumy mohli vyriesit pridanim enumov, co aj spravili neskor.
Javascript enumy stale nema, ma ich typescript. String literals je tam pre to, ze mnoho existujuceho JS api pouziva stringy namiesto enumov.
takyto C# kod je uplne bezny:
Viem co tym chces povedat a suhlasim. Na druhej strane, ak mas takyto kod, dakde budes musiet previest ten povodny enum na mapovany a ten throw sa ti priste presunie tam. No beriem, ze je to lepsi sposob.
Ja v tomto pripade, ak ide o public api radsej definujem dalsi enum.