Funguje TypeScript aj za run-time?

Funguje TypeScript aj za run-time?
« kdy: 12. 10. 2018, 12:17:39 »
Mám na mysli toto: použijem TS a rozhodne tým získam type hints počas kódovania. Ale čo sa dej pri transpilovaní do JS? Ak som označil počas kódovania parameter funkcie, že má byť iba Integer, transpilácia len odstráni definíciu typu z funkcie, alebo aj doplní do funkcie kontrolný kód, či je parameter typu Integer? Ergo, "zahučí" mi aplikácia za run-time pri odovzdaní nesprávneho typu parametru ako pri staticky typovanom jazyku, alebo je TS len o hintoch počas kódenia?


BoneFlute

  • *****
  • 2 010
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #1 kdy: 12. 10. 2018, 12:36:38 »
Nebylo by zrovna tohle jednodužší prostě zkusit?

Re:Funguje TypeScript aj za run-time?
« Odpověď #2 kdy: 12. 10. 2018, 12:40:04 »
Nebylo by zrovna tohle jednodužší prostě zkusit?

Nie, jednoduchšie je opýtať sa. Obzvlášť, ak si práve mimo civilizácie a nemáš so sebou ani nb :)

Kozel

Re:Funguje TypeScript aj za run-time?
« Odpověď #3 kdy: 12. 10. 2018, 12:44:22 »
Ano, muzes mit kontrolu i v runtime. Hledej Type Guard https://www.typescriptlang.org/docs/handbook/advanced-types.html

mmm

Re:Funguje TypeScript aj za run-time?
« Odpověď #4 kdy: 12. 10. 2018, 12:51:29 »
Ano, muzes mit kontrolu i v runtime. Hledej Type Guard https://www.typescriptlang.org/docs/handbook/advanced-types.html

Tak si ten odkaz přečtěte. Type Guards nejsou v runtime.


Re:Funguje TypeScript aj za run-time?
« Odpověď #5 kdy: 12. 10. 2018, 12:55:41 »
Ano, muzes mit kontrolu i v runtime. Hledej Type Guard https://www.typescriptlang.org/docs/handbook/advanced-types.html

Vidím tam pre run-time akurát tak ručné použitie typeof a instanceof. To ale predsa nemá nič spoločné s TS. Takto robím kontroly teraz, s čistým JS. Vo funkcii si sám ako prvé napíšem kontrolu, či je parameter typeof čo potrebujem.

JanJan

Re:Funguje TypeScript aj za run-time?
« Odpověď #6 kdy: 12. 10. 2018, 12:57:53 »
To je tak slozity si precist prvni vetu na typescriptlang.org? Kompiluje se to do plain javascriptu, tak se zkus zamyslet nad tim, jestli ti to v dobe runtime bude checkovat typy...

Re:Funguje TypeScript aj za run-time?
« Odpověď #7 kdy: 12. 10. 2018, 13:06:37 »
To je tak slozity si precist prvni vetu na typescriptlang.org? Kompiluje se to do plain javascriptu, tak se zkus zamyslet nad tim, jestli ti to v dobe runtime bude checkovat typy...

To je tak zložité prečítať si poriadne moju otázku? Či dopĺňa počas transpilácie kód na kontrolu tých typov aby to fungovalo aj za run-time? Nemudruj, keď v TS nerobíš. Pýtam sa používateľov TS, nie vygooglené múdra amatérov.

mmm

Re:Funguje TypeScript aj za run-time?
« Odpověď #8 kdy: 12. 10. 2018, 13:10:15 »
To je tak slozity si precist prvni vetu na typescriptlang.org? Kompiluje se to do plain javascriptu, tak se zkus zamyslet nad tim, jestli ti to v dobe runtime bude checkovat typy...

To je tak zložité prečítať si poriadne moju otázku? Či dopĺňa počas transpilácie kód na kontrolu tých typov aby to fungovalo aj za run-time? Nemudruj, keď v TS nerobíš. Pýtam sa používateľov TS, nie vygooglené múdra amatérov.

google našel třeba tohle https://github.com/fabiandev/ts-runtime .

Re:Funguje TypeScript aj za run-time?
« Odpověď #9 kdy: 12. 10. 2018, 13:15:33 »
Prosím, fakt nie googliči. Otázka je smerovaná na tých, čo TS aktívne používajú a vedia o čom hovoria, vrátane poznatkov z praxe. Ktorá sa často líši od teórie v dokumentácii. Takže JanJan ani mmm, vy nie.

mmm

Re:Funguje TypeScript aj za run-time?
« Odpověď #10 kdy: 12. 10. 2018, 13:17:44 »
To je tak slozity si precist prvni vetu na typescriptlang.org? Kompiluje se to do plain javascriptu, tak se zkus zamyslet nad tim, jestli ti to v dobe runtime bude checkovat typy...

to je pravda, ale je možné z typových anotací vygenerovat kód, který provádí runtime checky.

Bacsa

Re:Funguje TypeScript aj za run-time?
« Odpověď #11 kdy: 12. 10. 2018, 13:21:06 »
"zahučí" mi aplikácia za run-time pri odovzdaní nesprávneho typu parametru ako pri staticky typovanom jazyku
V první řadě si zjisti, co je statické typování. Pak se nauč JS a pak už budeš mít aspoň znalosti juniora a nebudeš se tak blbě ptát.

Kozel

Re:Funguje TypeScript aj za run-time?
« Odpověď #12 kdy: 12. 10. 2018, 13:21:51 »
Ano, muzes mit kontrolu i v runtime. Hledej Type Guard https://www.typescriptlang.org/docs/handbook/advanced-types.html

Vidím tam pre run-time akurát tak ručné použitie typeof a instanceof. To ale predsa nemá nič spoločné s TS.

No jasne ze to nema, kdyz runtime je uz javascript. To jestli v guardu pouzijes typeof ci instanceof nebo nejakou knihovnu na checkovani typu je uz uplne v tve rezii. kdyz pouzijes kombo "unknown" a typeguard tak dostanes  pomerne silny nastroj na to aby byl kod silne typovany jak v buildtime tak v runtime. Pouziva se to hlavne pri parsovani 3rd party dat v ajaxu, api atd. kde nekdy nevis dopredu co presne dojde a tak to checkne guard. Na tvoje kody a data, ktere znas staci obvykle buildtime typing.

Re:Funguje TypeScript aj za run-time?
« Odpověď #13 kdy: 12. 10. 2018, 13:23:03 »
To je tak slozity si precist prvni vetu na typescriptlang.org? Kompiluje se to do plain javascriptu, tak se zkus zamyslet nad tim, jestli ti to v dobe runtime bude checkovat typy...

to je pravda, ale je možné z typových anotací vygenerovat kód, který provádí runtime checky.

Áno, ale robí to priamo TS? Alebo nie, ale len tá knižnica? A tá je oficiálne podporovaná, alebo len nezaručená third party? A do akej hĺbky s TS funguje? Zaručí mi pri objekte počas runtime aj správnosť typu objektu, alebo to už nie? Preto sa k tomu nemáte vyjadrovať. Google neučí, prax učí.

mmm

Re:Funguje TypeScript aj za run-time?
« Odpověď #14 kdy: 12. 10. 2018, 13:35:13 »
Ano, muzes mit kontrolu i v runtime. Hledej Type Guard https://www.typescriptlang.org/docs/handbook/advanced-types.html

Vidím tam pre run-time akurát tak ručné použitie typeof a instanceof. To ale predsa nemá nič spoločné s TS.

No jasne ze to nema, kdyz runtime je uz javascript. To jestli v guardu pouzijes typeof ci instanceof nebo nejakou knihovnu na checkovani typu je uz uplne v tve rezii. kdyz pouzijes kombo "unknown" a typeguard tak dostanes  pomerne silny nastroj na to aby byl kod silne typovany jak v buildtime tak v runtime. Pouziva se to hlavne pri parsovani 3rd party dat v ajaxu, api atd. kde nekdy nevis dopredu co presne dojde a tak to checkne guard. Na tvoje kody a data, ktere znas staci obvykle buildtime typing.

Ale on se ptal na kontrolu v runtime, funkce v runtime o žádných typeguards neví.