Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Wal-De-Mar 12. 10. 2018, 12:17:39

Název: Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 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?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 12:36:38
Nebylo by zrovna tohle jednodužší prostě zkusit?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 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 :)
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Kozel 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
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 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.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 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.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: JanJan 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...
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 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.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 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 .
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 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.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 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.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Bacsa 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.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Kozel 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.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 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čí.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 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í.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 13:35:45
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.

Takže po definícii typeguard v TS následne transpilácia dopĺňa do výsledného JS kód na kontrolu stráženého typu, aby tá kontrola fungovala aj za runtime? Si si tým istý?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Kozel 12. 10. 2018, 13:36:19
Že si ty typu dement a nejde to zmeniť je všetko čo o statickom typovaní potrebujem vedieť. Choď troliť do iného vlákna, ĎAKUJEM.

Prestan vyvadet.

Proste ti jenom jemne chceme naznacit, ze zrejme na to jdes spatne a resis blbost. TS nikdy nebyl a nebude o plnem runtime typechecku, neni to jeho cilem. Bez guardu ci check-knihoven nebo nahore spominaneho ts-runtime co ti pomuze s generovanim guardu to nedas. Kazdopadne kdyz chces jit toihle cestou pocitej s tim, ze performance tveho kodu pujde dolu diky neustalemu checkovani typu.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 13:47:21
Že si ty typu dement a nejde to zmeniť je všetko čo o statickom typovaní potrebujem vedieť. Choď troliť do iného vlákna, ĎAKUJEM.

Prestan vyvadet.

Proste ti jenom jemne chceme naznacit, ze zrejme na to jdes spatne a resis blbost. TS nikdy nebyl a nebude o plnem runtime typechecku, neni to jeho cilem. Bez guardu ci check-knihoven nebo nahore spominaneho ts-runtime co ti pomuze s generovanim guardu to nedas. Kazdopadne kdyz chces jit toihle cestou pocitej s tim, ze performance tveho kodu pujde dolu diky neustalemu checkovani typu.

Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel? Stojí za ten dlhšie písaný "bloated" kód a toho drahšieho programátora ako toho, čo vie "iba" JS, plus za väčšie náklady na maintenance, zasa za toho drahšieho programátora? Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce? A keď v princípe všetko čo za to TS ponúka, sú type hinty? Má TA zmysel vo svetle faktu, že typovú kontrolu si v princípe môžem nad codebase vykonať aj s Flow, a to bez definície jediného typu? A kód mi ostane čitateľnejší, lacnejšie vytvorený a udržiavaný a za runtime aj tak či onak budú fungovať rovnako? To nie je žiadna blbosť ale principiálna otázka z praxe.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Bacsa 12. 10. 2018, 13:54:30
Že si ty typu dement a nejde to zmeniť je všetko čo o statickom typovaní potrebujem vedieť. Choď troliť do iného vlákna, ĎAKUJEM.

Prestan vyvadet.

Proste ti jenom jemne chceme naznacit, ze zrejme na to jdes spatne a resis blbost. TS nikdy nebyl a nebude o plnem runtime typechecku, neni to jeho cilem. Bez guardu ci check-knihoven nebo nahore spominaneho ts-runtime co ti pomuze s generovanim guardu to nedas. Kazdopadne kdyz chces jit toihle cestou pocitej s tim, ze performance tveho kodu pujde dolu diky neustalemu checkovani typu.

Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel? Stojí za ten dlhšie písaný "bloated" kód a toho drahšieho programátora ako toho, čo vie "iba" JS, plus za väčšie náklady na maintenance, zasa za toho drahšieho programátora? Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce? A keď v princípe všetko čo za to TS ponúka, sú type hinty? Má TA zmysel vo svetle faktu, že typovú kontrolu si v princípe môžem nad codebase vykonať aj s Flow, a to bez definície jediného typu? A kód mi ostane čitateľnejší, lacnejšie vytvorený a udržiavaný a za runtime aj tak či onak budú fungovať rovnako? To nie je žiadna blbosť ale principiálna otázka z praxe.
Z tvojí praxe copy-paste lepiče podřadného kódu? Když nechápeš, k čemu je statické typování, tak ho prostě nepoužívej, na tvoje čidlo v oštiepku na salaši to vliv mít nebude ;)
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 14:00:59
Že si ty typu dement a nejde to zmeniť je všetko čo o statickom typovaní potrebujem vedieť. Choď troliť do iného vlákna, ĎAKUJEM.

Prestan vyvadet.

Proste ti jenom jemne chceme naznacit, ze zrejme na to jdes spatne a resis blbost. TS nikdy nebyl a nebude o plnem runtime typechecku, neni to jeho cilem. Bez guardu ci check-knihoven nebo nahore spominaneho ts-runtime co ti pomuze s generovanim guardu to nedas. Kazdopadne kdyz chces jit toihle cestou pocitej s tim, ze performance tveho kodu pujde dolu diky neustalemu checkovani typu.

Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel? Stojí za ten dlhšie písaný "bloated" kód a toho drahšieho programátora ako toho, čo vie "iba" JS, plus za väčšie náklady na maintenance, zasa za toho drahšieho programátora? Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce? A keď v princípe všetko čo za to TS ponúka, sú type hinty? Má TA zmysel vo svetle faktu, že typovú kontrolu si v princípe môžem nad codebase vykonať aj s Flow, a to bez definície jediného typu? A kód mi ostane čitateľnejší, lacnejšie vytvorený a udržiavaný a za runtime aj tak či onak budú fungovať rovnako? To nie je žiadna blbosť ale principiálna otázka z praxe.
Z tvojí praxe copy-paste lepiče podřadného kódu? Když nechápeš, k čemu je statické typování, tak ho prostě nepoužívej, na tvoje čidlo v oštiepku na salaši to vliv mít nebude ;)

Ako vážne? Pod citáciu kompletného vysvetlenia opodstatnenia otázky napíšeš toto? Drbko :)
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Kozel 12. 10. 2018, 14:03:11
Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel? Stojí za ten dlhšie písaný "bloated" kód a toho drahšieho programátora ako toho, čo vie "iba" JS, plus za väčšie náklady na maintenance, zasa za toho drahšieho programátora?

Vychovat TS programatora je levnejsi nez JS kodera protoze TS je pes co rve dokud kod neni cisty. JS ti dovoli prasarny a u nezkuseneho kodera tak muzou byt dusledky mnohem drahsi :D

Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce?

Blbost. Unit testy k TS se pisou mnohem lepe a muzes je psat rovnou v TS. Naimportujes kod co chces testovat, naplnis fixtures pripadne stubs, pustis asserty, vymalovano.

A keď v princípe všetko čo za to TS ponúka, sú type hinty? Má TA zmysel vo svetle faktu, že typovú kontrolu si v princípe môžem nad codebase vykonať aj s Flow, a to bez definície jediného typu?

Typescript je mnohem lepsi nez Flow. Navic kazdy existujici JS kod je i validnim TS kodem dokud do neho nenarves typy. Takze nemusis vsechno prepisovat.

A kód mi ostane čitateľnejší, lacnejšie vytvorený a udržiavaný a za runtime aj tak či onak budú fungovať rovnako? To nie je žiadna blbosť ale principiálna otázka z praxe.

Tak nevim co kodite ale rikat ze JS kod je vice citelny nez TS kod ? Kdyz budes kodit poradne MVC apky v teamu a nechces se po roce utopit v spagetach tak k typescriptu pobezis velice brzy a velice rad. Ta typovost za to stoji a spousta chyb se tak eliminuje uz v zarodku.

My na TS presli asi pred 2 lety a je to jednoznacne pozitivum. Zpatky by uz nikdo nesel, vyplatilo se to, zlepsili se metriky jak vykonnosti koderu, tak poctu chyb. Vyhodou byla ta moznost postupneho prechodu kde na zacatku byl jeden .ts soubor a 500 .js souboru. Dnes je to nekde na 400 .ts souborech a na zbytek .js uz sahat nebudeme, postacilo pridat .d.ts definince.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: JSH 12. 10. 2018, 14:10:11
Že si ty typu dement a nejde to zmeniť je všetko čo o statickom typovaní potrebujem vedieť. Choď troliť do iného vlákna, ĎAKUJEM.

Prestan vyvadet.

Proste ti jenom jemne chceme naznacit, ze zrejme na to jdes spatne a resis blbost. TS nikdy nebyl a nebude o plnem runtime typechecku, neni to jeho cilem. Bez guardu ci check-knihoven nebo nahore spominaneho ts-runtime co ti pomuze s generovanim guardu to nedas. Kazdopadne kdyz chces jit toihle cestou pocitej s tim, ze performance tveho kodu pujde dolu diky neustalemu checkovani typu.

Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel? Stojí za ten dlhšie písaný "bloated" kód a toho drahšieho programátora ako toho, čo vie "iba" JS, plus za väčšie náklady na maintenance, zasa za toho drahšieho programátora? Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce? A keď v princípe všetko čo za to TS ponúka, sú type hinty? Má TA zmysel vo svetle faktu, že typovú kontrolu si v princípe môžem nad codebase vykonať aj s Flow, a to bez definície jediného typu? A kód mi ostane čitateľnejší, lacnejšie vytvorený a udržiavaný a za runtime aj tak či onak budú fungovať rovnako? To nie je žiadna blbosť ale principiálna otázka z praxe.
Ptal ses ale na něco o dost jiného. Tak se nediv ;)

Celé to statické typování děláme pro to, abychom typovou kontrolu nemuseli dělat až s Flow. Aby bylo zaručené, že jsou v runtime typy dobře. A aby co nejvíc chyb dokázal odchytit překladač.

A jestli se to vyplatí, ti tu fakt nikdo neřekne. Nevíme, co máš k dispozici za programátory. Nevíme, jaký druh problému řešíš. A tak dál. A navíc to nejsme my, kdo jde s kůží na trh.

Ale abych byl upřímný, tak mi nepřijde že bys zjišťoval jestli se to vyplatí. Spíš mi to připadá, že sháníš argumenty proč se to nevyplatí.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 14:14:44
Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel? Stojí za ten dlhšie písaný "bloated" kód a toho drahšieho programátora ako toho, čo vie "iba" JS, plus za väčšie náklady na maintenance, zasa za toho drahšieho programátora?

Vychovat TS programatora je levnejsi nez JS kodera protoze TS je pes co rve dokud kod neni cisty. JS ti dovoli prasarny a u nezkuseneho kodera tak muzou byt dusledky mnohem drahsi :D

Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce?

Blbost. Unit testy k TS se pisou mnohem lepe a muzes je psat rovnou v TS. Naimportujes kod co chces testovat, naplnis fixtures pripadne stubs, pustis asserty, vymalovano.

A keď v princípe všetko čo za to TS ponúka, sú type hinty? Má TA zmysel vo svetle faktu, že typovú kontrolu si v princípe môžem nad codebase vykonať aj s Flow, a to bez definície jediného typu?

Typescript je mnohem lepsi nez Flow. Navic kazdy existujici JS kod je i validnim TS kodem dokud do neho nenarves typy. Takze nemusis vsechno prepisovat.

A kód mi ostane čitateľnejší, lacnejšie vytvorený a udržiavaný a za runtime aj tak či onak budú fungovať rovnako? To nie je žiadna blbosť ale principiálna otázka z praxe.

Tak nevim co kodite ale rikat ze JS kod je vice citelny nez TS kod ? Kdyz budes kodit poradne MVC apky v teamu a nechces se po roce utopit v spagetach tak k typescriptu pobezis velice brzy a velice rad. Ta typovost za to stoji a spousta chyb se tak eliminuje uz v zarodku.

My na TS presli asi pred 2 lety a je to jednoznacne pozitivum. Zpatky by uz nikdo nesel, vyplatilo se to, zlepsili se metriky jak vykonnosti koderu, tak poctu chyb. Vyhodou byla ta moznost postupneho prechodu kde na zacatku byl jeden .ts soubor a 500 .js souboru. Dnes je to nekde na 400 .ts souborech a na zbytek .js uz sahat nebudeme, postacilo pridat .d.ts definince.

Nie som si istý či ti verím, lebo tvrdíš aj zjavné nezmysli. Napríklad že mi TS prezentuješ ako riešenie špagety kódu, pričom je tam nulová súvislosť.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 14:16:59
Celé to statické typování děláme pro to, abychom typovou kontrolu nemuseli dělat až s Flow. Aby bylo zaručené, že jsou v runtime typy dobře. A aby co nejvíc chyb dokázal odchytit překladač.

Flow je statická kontrola.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Kozel 12. 10. 2018, 14:20:51
Nie som si istý či ti verím, lebo tvrdíš aj zjavné nezmysli. Napríklad že mi TS prezentuješ ako riešenie špagety kódu, pričom je tam nulová súvislosť.

No jestli delas i v programovani takove hrubky jako v slovencine tak se asi nemame dal o cem bavit. Chtel jsem ti slusne poradit ale chovas je jako k@k@t.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 14:22:48
Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel?

Ano má. Protože chceme kód otestovat před spuštěním, ne za běhu. Ty se tážeš, zda ti to bude testovat za běhu, ale o to nikdo nemá zájem. To nebyl důvod, proč byl TS vymyšlen.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 14:23:43
Typescript je mnohem lepsi nez Flow.

Odvážné tvrzení. Můžeš to rozvést?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 14:27:34
Nie som si istý či ti verím, lebo tvrdíš aj zjavné nezmysli. Napríklad že mi TS prezentuješ ako riešenie špagety kódu, pričom je tam nulová súvislosť.

No jestli delas i v programovani takove hrubky jako v slovencine tak se asi nemame dal o cem bavit. Chtel jsem ti slusne poradit ale chovas je jako k@k@t.

A to vážne? Za jeden preklep v "y" som kokot? Dobre. Ja som kokot, ty profi developer. Tak sa vráťme k téme a ako prvé mi vysvetli ako TS súvisí / eliminovalo špagety kód vo vašej firme.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: . 12. 10. 2018, 14:30:40
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?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 14:31:03
Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel?

Ano má. Protože chceme kód otestovat před spuštěním, ne za běhu. Ty se tážeš, zda ti to bude testovat za běhu, ale o to nikdo nemá zájem. To nebyl důvod, proč byl TS vymyšlen.

Mňa naopak zaujímajú správne typy hodnôt za behu. Lebo len to je pre mňa bezpečnostné riziko. A zdá sa, že TS mi nijak nepomôže s neznámym JSON za behu. Tým pádom je pre mňa TS zbytočné.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 14:31:56
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 14:34:06
Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel?

Ano má. Protože chceme kód otestovat před spuštěním, ne za běhu. Ty se tážeš, zda ti to bude testovat za běhu, ale o to nikdo nemá zájem. To nebyl důvod, proč byl TS vymyšlen.

Mňa naopak zaujímajú správne typy hodnôt za behu. Lebo len to je pre mňa bezpečnostné riziko. A zdá sa, že TS mi nijak nepomôže s neznámym JSON za behu. Tým pádom je pre mňa TS zbytočné.

Tak pokud myslíš, že to potřebuješ, použij už uváděné knihovny. TS za tímto účelem nebyl vymyšlen.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 14:36:00
Že si ty typu dement a nejde to zmeniť je všetko čo o statickom typovaní potrebujem vedieť. Choď troliť do iného vlákna, ĎAKUJEM.

Prestan vyvadet.

Proste ti jenom jemne chceme naznacit, ze zrejme na to jdes spatne a resis blbost. TS nikdy nebyl a nebude o plnem runtime typechecku, neni to jeho cilem. Bez guardu ci check-knihoven nebo nahore spominaneho ts-runtime co ti pomuze s generovanim guardu to nedas. Kazdopadne kdyz chces jit toihle cestou pocitej s tim, ze performance tveho kodu pujde dolu diky neustalemu checkovani typu.

Lenže ja neriešim blbosť, ale principiálnu otázku: má vôbec TS zmysel? Stojí za ten dlhšie písaný "bloated" kód a toho drahšieho programátora ako toho, čo vie "iba" JS, plus za väčšie náklady na maintenance, zasa za toho drahšieho programátora? Keď navyše písať k tomu testy je tiež ako drahšie, tak zložitejšie a dlhšie trvajúce? A keď v princípe všetko čo za to TS ponúka, sú type hinty? Má TA zmysel vo svetle faktu, že typovú kontrolu si v princípe môžem nad codebase vykonať aj s Flow, a to bez definície jediného typu? A kód mi ostane čitateľnejší, lacnejšie vytvorený a udržiavaný a za runtime aj tak či onak budú fungovať rovnako? To nie je žiadna blbosť ale principiálna otázka z praxe.
Ptal ses ale na něco o dost jiného. Tak se nediv ;)

Celé to statické typování děláme pro to, abychom typovou kontrolu nemuseli dělat až s Flow. Aby bylo zaručené, že jsou v runtime typy dobře. A aby co nejvíc chyb dokázal odchytit překladač.

A jestli se to vyplatí, ti tu fakt nikdo neřekne. Nevíme, co máš k dispozici za programátory. Nevíme, jaký druh problému řešíš. A tak dál. A navíc to nejsme my, kdo jde s kůží na trh.

Ale abych byl upřímný, tak mi nepřijde že bys zjišťoval jestli se to vyplatí. Spíš mi to připadá, že sháníš argumenty proč se to nevyplatí.

Iste. Falzifikácia je vo výsledku to isté, ako verifikácia. A ty si pre mňa zatiaľ iba ďalšia obeť TS hype. Napísať, že TS je riešenie špagety kódu, Flow je nanič a do konca, že TS developer sa ani nemusí učiť JS, to je zbierka takých nezmyslov..
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 14:39:41
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 14:41:38
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

Co se ti nezdá?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 14:47:45
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?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.

Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 14:50:26
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

Co se ti nezdá?

Napríklad to, že fungujúci špagety kód mi pridanie typov žiadnym spôsobom neprečistí? Že typy a špagety kód nemajú fakt nič spoločné?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Bacsa 12. 10. 2018, 14:54:27
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?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?
To máš vážně tak nízké IQ? Spadne to na konverzi, když neošetříš případnou chybu.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: . 12. 10. 2018, 14:59:18
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?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.

Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?
Na runtime error určitě ne. Nejsem Java programátor, ale rychlý pohled na java.io.DataInputStream.readInt() prozrazuje, že načte 4 byty ze vstupu a interpretuje je jako číslo. Exeption hodí jen na neočekávaný výskyt konce souboru nebo IO chybu.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 15:00:11
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?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.

Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

Ano. Zajímá tě Maybe/Option typ.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 15:02:17
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

Co se ti nezdá?

Napríklad to, že fungujúci špagety kód mi pridanie typov žiadnym spôsobom neprečistí? Že typy a špagety kód nemajú fakt nič spoločné?

To, že se ti to nezdá, že já to tak použít umím, protože ten jazyk používám, zatímco ty neumíš, protože jsi to nikdy nedělal, páč by si se tak neptal - to není známka špatného argumentu.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 15:03:38
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?
Řekl bych, že úplně nerozumíte tomu, co znamená staticky typovaný jazyk. V běžně používaných staticky typovaných jazycích (C, C++, Java,...) se žádná runtime kontrola nesprávného typu nedělá. Proč taky, to garantuje kompilátor, že tam je správný typ. U některých se dají různými oklikami vynutit checky, ale to už je jiná kapitola. Pokud by to totiž bylo běžnou součástí, tak by šla výkonnost prudce dolů. A pro váš neklidný spánek vám prozradím ještě jedno sladké tajemství, u většiny se standardně neprovádí ani kontrola přetečení/podtečení u číselných typů.
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?
To máš vážně tak nízké IQ? Spadne to na konverzi, když neošetříš případnou chybu.

Alebo naopak? Rozlišujem medzi buildtime a runtime a tvrdím, len prijebanci sa môžu za runtime odvolávať na statické typy? Že sú im za runtime na piču a musia si strážiť vstupy rovnako, ručne, prídavnými typovými kontrolami, či už v staticky, či dynamicky typovanom jazyku? Inak im program zhodí / hackne 10 ročné decko? A ešte sa mi iný dement pochváli, že staticky typovaný jazyk je lepší, lebo za  runtime nestráži ani rozsah hodnôt? A??? Šak kontrola ručne navyše aby sa to za behu nestalo, lebo overflow/underflow je najpriamejšia cesta ako kompromitovať apku! Vám to tu ale pekne jebe vy "programátori"
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 15:08:25
... ako TS súvisí / eliminovalo špagety kód vo vašej firme.

Souvisí to s typováním. Jakmile začneš do těch špaget rvát typy, tak se to začne pročišťovat. Přirozený refactoring. Dále tomu pomáhá skutečnost, že ty typy se dají přidávat postupně. Takže odpadá strach z megapřepisu.

??? Kokot to je argument. Pridanie definície typov prečisťuje kód.

Co se ti nezdá?

Napríklad to, že fungujúci špagety kód mi pridanie typov žiadnym spôsobom neprečistí? Že typy a špagety kód nemajú fakt nič spoločné?

To, že se ti to nezdá, že já to tak použít umím, protože ten jazyk používám, zatímco ty neumíš, protože jsi to nikdy nedělal, páč by si se tak neptal - to není známka špatného argumentu.

Jeden tu motá dohromady build time s run time, iný motá dohromady refaktorizáciu s typmi. To je tak všetko, čo som sa dozvedel. Ako vždy na tomto fóre, nič.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 15:14:17
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

to typescript nedovolí. Musíte nejdřív převést na číslo.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: . 12. 10. 2018, 15:18:13
Alebo naopak? Rozlišujem medzi buildtime a runtime a tvrdím, len prijebanci sa môžu za runtime odvolávať na statické typy? Že sú im za runtime na piču a musia si strážiť vstupy rovnako, ručne, prídavnými typovými kontrolami, či už v staticky, či dynamicky typovanom jazyku? Inak im program zhodí / hackne 10 ročné decko? A ešte sa mi iný dement pochváli, že staticky typovaný jazyk je lepší, lebo za  runtime nestráži ani rozsah hodnôt? A??? Šak kontrola ručne navyše aby sa to za behu nestalo, lebo overflow/underflow je najpriamejšia cesta ako kompromitovať apku! Vám to tu ale pekne jebe vy "programátori"
Takhle to dopadá, když se nedostudovanci dají na programování. A pokud máš IT vysokou školu, tak radši nechci ani vědět kterou.

Zkus si v tom svém Javascriptu toto:
Kód: [Vybrat]
> parseInt("10765432100123456789")
a budeš překvapený, co ti vyleze. Přičemž je docela běžné, že se id v JSONu posílají v numerickém formátu. Něříkám, že to je problém, prostě to je takto definováno, ale je zjevné, že o tom vůbec nevíš.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 15:18:30
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

to typescript nedovolí. Musíte nejdřív převést na číslo.

Ale dovolí. Lebo za runtime tam z TS syntaxu neostane ani zmienka. Vo formulári ti užívateľ zadá text miesto čísla a TS ti s tým nijak nepomôže. Len si pletieš buildtime s runtime.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 15:20:20
Jeden tu motá dohromady build time s run time, iný motá dohromady refaktorizáciu s typmi. To je tak všetko, čo som sa dozvedel. Ako vždy na tomto fóre, nič.

Tak si říkám, možná by bylo užitečnější, když by si radil spíše ty nám, ne? Určitě se máme od tebe hodně co naučit.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 15:22:15
Alebo naopak? Rozlišujem medzi buildtime a runtime a tvrdím, len prijebanci sa môžu za runtime odvolávať na statické typy? Že sú im za runtime na piču a musia si strážiť vstupy rovnako, ručne, prídavnými typovými kontrolami, či už v staticky, či dynamicky typovanom jazyku? Inak im program zhodí / hackne 10 ročné decko? A ešte sa mi iný dement pochváli, že staticky typovaný jazyk je lepší, lebo za  runtime nestráži ani rozsah hodnôt? A??? Šak kontrola ručne navyše aby sa to za behu nestalo, lebo overflow/underflow je najpriamejšia cesta ako kompromitovať apku! Vám to tu ale pekne jebe vy "programátori"
Takhle to dopadá, když se nedostudovanci dají na programování. A pokud máš IT vysokou školu, tak radši nechci ani vědět kterou.

Zkus si v tom svém Javascriptu toto:
Kód: [Vybrat]
> parseInt("10765432100123456789")
a budeš překvapený, co ti vyleze. Přičemž je docela běžné, že se id v JSONu posílají v numerickém formátu. Něříkám, že to je problém, prostě to je takto definováno, ale je zjevné, že o tom vůbec nevíš.

Čo si ty za debila... A čo má parseInt, manuálne sparsovanie hodnoty, spoločné s typmi??? Veď to je to, čo hovorím: že kým si sám, napríklad s parseInt, alebo obdobne sám neustrážim hodnotu na vstupe, tak typový systém už vôbec nie.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 15:23:30
Jeden tu motá dohromady build time s run time, iný motá dohromady refaktorizáciu s typmi. To je tak všetko, čo som sa dozvedel. Ako vždy na tomto fóre, nič.

Tak si říkám, možná by bylo užitečnější, když by si radil spíše ty nám, ne? Určitě se máme od tebe hodně co naučit.

Áno, preto mali moje kurzy také dobré hodnotenia, preto aj po čase nájdeš komentáre, že som dobrý :*
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 15:24:27
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

to typescript nedovolí. Musíte nejdřív převést na číslo.

Ale dovolí. Lebo za runtime tam z TS syntaxu neostane ani zmienka. Vo formulári ti užívateľ zadá text miesto čísla a TS ti s tým nijak nepomôže. Len si pletieš buildtime s runtime.

TS rozumí konverzím a assercím. Ví, že výsledek parseInt, Number, parseFloat je číslo. Rozumí testování na NaN. V runtime zmizí pouze anotace specifické pro TS, javascriptové asserce zůstanou. Flow funguje stejně.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Tomáš Roll 12. 10. 2018, 15:29:00

Iste. Falzifikácia je vo výsledku to isté, ako verifikácia. A ty si pre mňa zatiaľ iba ďalšia obeť TS hype. Napísať, že TS je riešenie špagety kódu, Flow je nanič a do konca, že TS developer sa ani nemusí učiť JS, to je zbierka takých nezmyslov..

Proč se potom ptáš, když máš předem hotový názor?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 15:30:14
TS rozumí konverzím a assercím. Ví, že výsledek parseInt, Number, parseFloat je číslo. Rozumí testování na NaN. V runtime zmizí pouze anotace specifické pro TS, javascriptové asserce zůstanou. Flow funguje stejně.

Jen tě doplním, že TS není z kategorie neprůstřelných. Tudíž si nevynutí (jako Elm), aby byly vstupy monadické, tudíž to nedohlídá.

PS: Tento příspěvek není pro @Wal-De-Mar
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: . 12. 10. 2018, 15:35:47
Alebo naopak? Rozlišujem medzi buildtime a runtime a tvrdím, len prijebanci sa môžu za runtime odvolávať na statické typy? Že sú im za runtime na piču a musia si strážiť vstupy rovnako, ručne, prídavnými typovými kontrolami, či už v staticky, či dynamicky typovanom jazyku? Inak im program zhodí / hackne 10 ročné decko? A ešte sa mi iný dement pochváli, že staticky typovaný jazyk je lepší, lebo za  runtime nestráži ani rozsah hodnôt? A??? Šak kontrola ručne navyše aby sa to za behu nestalo, lebo overflow/underflow je najpriamejšia cesta ako kompromitovať apku! Vám to tu ale pekne jebe vy "programátori"
Takhle to dopadá, když se nedostudovanci dají na programování. A pokud máš IT vysokou školu, tak radši nechci ani vědět kterou.

Zkus si v tom svém Javascriptu toto:
Kód: [Vybrat]
> parseInt("10765432100123456789")
a budeš překvapený, co ti vyleze. Přičemž je docela běžné, že se id v JSONu posílají v numerickém formátu. Něříkám, že to je problém, prostě to je takto definováno, ale je zjevné, že o tom vůbec nevíš.

Čo si ty za debila... A čo má parseInt, manuálne sparsovanie hodnoty, spoločné s typmi??? Veď to je to, čo hovorím: že kým si sám, napríklad s parseInt, alebo obdobne sám neustrážim hodnotu na vstupe, tak typový systém už vôbec nie.
Ty sis to do té konzoly nezadal, co? Vyčítáš ostatním jazyků přetečení/podtečení, hážeš na všechny strany sprostá slova, ale sám nic nevíš. Tady máš výsledek a fčil mudruj, ty ...
Kód: [Vybrat]
> parseInt("10765432100123456789")
10765432100123458000
Za domácí úkol dostáváš zjistit, proč tomu tak je, ty chytráku.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Bacsa 12. 10. 2018, 15:37:24
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

to typescript nedovolí. Musíte nejdřív převést na číslo.

Ale dovolí. Lebo za runtime tam z TS syntaxu neostane ani zmienka. Vo formulári ti užívateľ zadá text miesto čísla a TS ti s tým nijak nepomôže. Len si pletieš buildtime s runtime.
Hoďte na něj někdo deku  ::)
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 15:38:10
Ale dovolí. Lebo za runtime tam z TS syntaxu neostane ani zmienka. Vo formulári ti užívateľ zadá text miesto čísla a TS ti s tým nijak nepomôže. Len si pletieš buildtime s runtime.
Hoďte na něj někdo deku  ::)

+1
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Bacsa 12. 10. 2018, 15:39:37
Jeden tu motá dohromady build time s run time, iný motá dohromady refaktorizáciu s typmi. To je tak všetko, čo som sa dozvedel. Ako vždy na tomto fóre, nič.

Tak si říkám, možná by bylo užitečnější, když by si radil spíše ty nám, ne? Určitě se máme od tebe hodně co naučit.

Áno, preto mali moje kurzy také dobré hodnotenia, preto aj po čase nájdeš komentáre, že som dobrý :*
Kurzy na popeláře?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 15:49:55
Jeden tu motá dohromady build time s run time, iný motá dohromady refaktorizáciu s typmi. To je tak všetko, čo som sa dozvedel. Ako vždy na tomto fóre, nič.

Tak si říkám, možná by bylo užitečnější, když by si radil spíše ty nám, ne? Určitě se máme od tebe hodně co naučit.

Áno, preto mali moje kurzy také dobré hodnotenia, preto aj po čase nájdeš komentáre, že som dobrý :*

Ale já ti to neberu. Jen je mi to tak nějak jedno.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 15:51:05
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

to typescript nedovolí. Musíte nejdřív převést na číslo.

Ale dovolí. Lebo za runtime tam z TS syntaxu neostane ani zmienka. Vo formulári ti užívateľ zadá text miesto čísla a TS ti s tým nijak nepomôže. Len si pletieš buildtime s runtime.

TS rozumí konverzím a assercím. Ví, že výsledek parseInt, Number, parseFloat je číslo. Rozumí testování na NaN. V runtime zmizí pouze anotace specifické pro TS, javascriptové asserce zůstanou. Flow funguje stejně.

Hurá, blížime sa k tomu, na čo som pôvodne pýtal. Takže to spresním: majme funkciu v čistom JS:

Kód: [Vybrat]
function naDruhu (num) {
  return num * num
}

Táto funkcia si vôbec nestráži typ a pokiaľ ju niekto zavolá so zle zadaným parametrom z formulára, napríklad v tvare naDruhu('Jožo'), funkcia dá nečakaný výsledok. Použijem teda akože TS a nadefinujem typ:

Kód: [Vybrat]
function naDruhu (num: number) {
  return num * num
}

Nedal som do kódu žiadnu kontrolu, pretypovanie, či parsovanie parametru. Lebo veď som nadefinoval typ parametru a spolieham naň. Že to nie je presný syntax TS nie je dôležité. Dôležité je, na čo sa pýtam, že čo sa udeje pri transpilácii. Lebo pokiaľ sa po transpilácii vyššie uvedená funkcia s typmi jednoducho transpiluje do čistého JS tak, že sa len odstránia definície typov, čiže naspäť do pôvodného tvaru,

Kód: [Vybrat]
function naDruhu (num) {
  return num * num
}

tak mi je TS a celé typy na kokot, akurát tak mám hinty počas písania a kontrolu počas transpilácie, ktorá však nič zlé nezistí, lebo nevie dopredu, či mi užívateľ zadá vo formulári platné číslo. Keby však robila to, čo chcem vedieť či naozaj robí, či definícia typu zároveň zabezpečí, že pri transpilácii sa môj kód rozšíri o kontrolu typu, aby fungoval aj počas behu aplikácie, takže napríklad takto:

Kód: [Vybrat]
// moja definícia
function (num: number) {
  return num * num
}

// po transpilácii napríklad takto,
// ako tu písal iný, s parseInt
function (num) {
  if (!parseInt(num)) throw new Error()
  return num * num
}

Zasa. Nemudrovať nad konkrétnym kódom. Otázka znie: zabezpečí mi definícia typu, že bude kontrolovaná otypovaná premenná aj za behu? Tak, že mi do kódu dopíše nejakú kontrolu? Alebo si takéto parsovanie / pretypovanie / kontrolu na správny typ dodanej za behu, vopred neznámej za návrhu, musím aj tak robiť sám, dopísať do kódu ručne? Sám?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Tomáš Roll 12. 10. 2018, 15:59:13
Když ti je TS na kokot, tak ho nepoužívej. Je zbytečné házet perly sviním.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 16:00:38
Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

to typescript nedovolí. Musíte nejdřív převést na číslo.

Ale dovolí. Lebo za runtime tam z TS syntaxu neostane ani zmienka. Vo formulári ti užívateľ zadá text miesto čísla a TS ti s tým nijak nepomôže. Len si pletieš buildtime s runtime.

TS rozumí konverzím a assercím. Ví, že výsledek parseInt, Number, parseFloat je číslo. Rozumí testování na NaN. V runtime zmizí pouze anotace specifické pro TS, javascriptové asserce zůstanou. Flow funguje stejně.

Hurá, blížime sa k tomu, na čo som pôvodne pýtal. Takže to spresním: majme funkciu v čistom JS:

Kód: [Vybrat]
function naDruhu (num) {
  return num * num
}

Táto funkcia si vôbec nestráži typ a pokiaľ ju niekto zavolá so zle zadaným parametrom z formulára, napríklad v tvare naDruhu('Jožo'), funkcia dá nečakaný výsledok. Použijem teda akože TS a nadefinujem typ:

Kód: [Vybrat]
function naDruhu (num: number) {
  return num * num
}

Nedal som do kódu žiadnu kontrolu, pretypovanie, či parsovanie parametru. Lebo veď som nadefinoval typ parametru a spolieham naň. Že to nie je presný syntax TS nie je dôležité. Dôležité je, na čo sa pýtam, že čo sa udeje pri transpilácii. Lebo pokiaľ sa po transpilácii vyššie uvedená funkcia s typmi jednoducho transpiluje do čistého JS tak, že sa len odstránia definície typov, čiže naspäť do pôvodného tvaru,

Kód: [Vybrat]
function naDruhu (num) {
  return num * num
}

tak mi je TS a celé typy na kokot, akurát tak mám hinty počas písania a kontrolu počas transpilácie, ktorá však nič zlé nezistí, lebo nevie dopredu, či mi užívateľ zadá vo formulári platné číslo. Keby však robila to, čo chcem vedieť či naozaj robí, či definícia typu zároveň zabezpečí, že pri transpilácii sa môj kód rozšíri o kontrolu typu, aby fungoval aj počas behu aplikácie, takže napríklad takto:

Kód: [Vybrat]
// moja definícia
function (num: number) {
  return num * num
}

// po transpilácii napríklad takto,
// ako tu písal iný, s parseInt
function (num) {
  if (!parseInt(num)) throw new Error()
  return num * num
}

Zasa. Nemudrovať nad konkrétnym kódom. Otázka znie: zabezpečí mi definícia typu, že bude kontrolovaná otypovaná premenná aj za behu? Tak, že mi do kódu dopíše nejakú kontrolu? Alebo si takéto parsovanie / pretypovanie / kontrolu na správny typ dodanej za behu, vopred neznámej za návrhu, musím aj tak robiť / dopísať do kódu ručne? Sám?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 16:01:53
Zasa. Nemudrovať nad konkrétnym kódom. Otázka znie: zabezpečí mi definícia typu, že bude kontrolovaná otypovaná premenná aj za behu? Alebo parsovanie / pretypovanie / kontrolu na správny typ dodanej za behu, vopred neznámej za návrhu, si musím robiť sám, ručne si ju dopísať do kódu?

kontrola funguje jen uvnitř typescriptu. Když výsledný javascript voláte z javascriptu, žádná kontrola neprobíhá. Když uvnitř typescriptu načítáte vstup z konzole, dostanete string a typescript ohlídá jeho konverzi na číslo před použítím ve funkci, která vyžaduje číslo. Ta konverze zůstane i ve výsledném javascriptu.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 16:05:47
Zasa. Nemudrovať nad konkrétnym kódom. Otázka znie: zabezpečí mi definícia typu, že bude kontrolovaná otypovaná premenná aj za behu? Alebo parsovanie / pretypovanie / kontrolu na správny typ dodanej za behu, vopred neznámej za návrhu, si musím robiť sám, ručne si ju dopísať do kódu?

kontrola funguje jen uvnitř typescriptu. Když výsledný javascript voláte z javascriptu, žádná kontrola neprobíhá. Když uvnitř typescriptu načítáte vstup z konzole, dostanete string a typescript ohlídá jeho konverzi na číslo před použítím ve funkci, která vyžaduje číslo. Ta konverze zůstane i ve výsledném javascriptu.

Čiže TS kód ide spustiť v tom tvare ako je napísaný? A čítať napríklad z konzoly? On na neho už existuje natívny interpreter a nemusí sa pred behom transpilovať do JS?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 16:12:32
Kód: [Vybrat]
function naDruhu (num) {
  return num * num
}

Táto funkcia si vôbec nestráži typ a pokiaľ ju niekto zavolá so zle zadaným parametrom z formulára, napríklad v tvare naDruhu('Jožo'), funkcia dá nečakaný výsledok. Použijem teda akože TS a nadefinujem typ:

Kód: [Vybrat]
function naDruhu (num: number) {
  return num * num
}

Nedal som do kódu žiadnu kontrolu, pretypovanie, či parsovanie parametru. Lebo veď som nadefinoval typ parametru a spolieham naň. Že to nie je presný syntax TS nie je dôležité. Dôležité je, na čo sa pýtam, že čo sa udeje pri transpilácii. Lebo pokiaľ sa po transpilácii vyššie uvedená funkcia s typmi jednoducho transpiluje do čistého JS tak, že sa len odstránia definície typov, čiže naspäť do pôvodného tvaru,

Kód: [Vybrat]
function naDruhu (num) {
  return num * num
}

tak mi je TS a celé typy na kokot, akurát tak mám hinty počas písania a kontrolu počas transpilácie, ktorá však nič zlé nezistí, lebo nevie dopredu, či mi užívateľ zadá vo formulári platné číslo. Keby však robila to, čo chcem vedieť či naozaj robí, či definícia typu zároveň zabezpečí, že pri transpilácii sa môj kód rozšíri o kontrolu typu, aby fungoval aj počas behu aplikácie, takže napríklad takto:

Kód: [Vybrat]
// moja definícia
function (num: number) {
  return num * num
}

// po transpilácii napríklad takto,
// ako tu písal iný, s parseInt
function (num) {
  if (!parseInt(num)) throw new Error()
  return num * num
}

Už to tu zaznělo. Místo držkování čítaj.

1. Takto se to nepřeloží, protože TS je staticky typovanej.
2. Typy jsou transitivní, takže by si měl ohlídat, že uvedenou funkci zavolám s výrazem odpovídajícího typu.
3. TS neohlídá všechno (pokud mi něco neuniklo), takže pokud mu něco "vnutíš" tak slítne. Ale obvykle máš vstupy otypovaný, tudíž víš, že ten formulář ti vrátí string, a tak tě to přinutí k tomu ho přetypovat na int. Při normální práci ti to nespadne.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 16:20:38
Kód: [Vybrat]
function naDruhu (num) {
  return num * num
}

Táto funkcia si vôbec nestráži typ a pokiaľ ju niekto zavolá so zle zadaným parametrom z formulára, napríklad v tvare naDruhu('Jožo'), funkcia dá nečakaný výsledok. Použijem teda akože TS a nadefinujem typ:

Kód: [Vybrat]
function naDruhu (num: number) {
  return num * num
}

Nedal som do kódu žiadnu kontrolu, pretypovanie, či parsovanie parametru. Lebo veď som nadefinoval typ parametru a spolieham naň. Že to nie je presný syntax TS nie je dôležité. Dôležité je, na čo sa pýtam, že čo sa udeje pri transpilácii. Lebo pokiaľ sa po transpilácii vyššie uvedená funkcia s typmi jednoducho transpiluje do čistého JS tak, že sa len odstránia definície typov, čiže naspäť do pôvodného tvaru,

Kód: [Vybrat]
function naDruhu (num) {
  return num * num
}

tak mi je TS a celé typy na kokot, akurát tak mám hinty počas písania a kontrolu počas transpilácie, ktorá však nič zlé nezistí, lebo nevie dopredu, či mi užívateľ zadá vo formulári platné číslo. Keby však robila to, čo chcem vedieť či naozaj robí, či definícia typu zároveň zabezpečí, že pri transpilácii sa môj kód rozšíri o kontrolu typu, aby fungoval aj počas behu aplikácie, takže napríklad takto:

Kód: [Vybrat]
// moja definícia
function (num: number) {
  return num * num
}

// po transpilácii napríklad takto,
// ako tu písal iný, s parseInt
function (num) {
  if (!parseInt(num)) throw new Error()
  return num * num
}

Už to tu zaznělo. Místo držkování čítaj.

1. Takto se to nepřeloží, protože TS je staticky typovanej.
2. Typy jsou transitivní, takže by si měl ohlídat, že uvedenou funkci zavolám s výrazem odpovídajícího typu.
3. TS neohlídá všechno (pokud mi něco neuniklo), takže pokud mu něco "vnutíš" tak slítne. Ale obvykle máš vstupy otypovaný, tudíž víš, že ten formulář ti vrátí string, a tak tě to přinutí k tomu ho přetypovat na int. Při normální práci ti to nespadne.

Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 16:22:53
Čiže TS kód ide spustiť v tom tvare ako je napísaný? A čítať napríklad z konzoly? On na neho už existuje natívny interpreter a nemusí sa pred behom transpilovať do JS?


Takže v Jave budem čítať vstup, čo len z konzoly, a pri pokuse priradiť načítaný string do premennej typu int mi program nespadne na runtime error?

jestli jsi myslel načítání uživatelského vstupu třeba funkcí readline v nodejs, tak typescript na vstupu dostane string a donutí tě konvertovat ho na číslo, ta konverze zůstane ve výsledném javascriptu. Vyzkoušení by tě stálo 5 minut.

jestli jsi myslel volání výsledné javascriptové funkce z konzole REPLu, tak tam samozřejmě kontroly nefungují.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 16:23:03
Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

Tuto odpověď jsi už dostal, co chceš víc?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 16:26:03
Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

ne.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 16:31:15
Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

ne.

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Tomáš Roll 12. 10. 2018, 16:34:37

Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

Ne, nedopíše. A k čemu by ti asi tak byla? Aby to spadlo s pěknější hláškou?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 16:35:46
Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

ne.

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

ne,

TS je platné, nemusíš si typy vstupních hodnot strážit sám.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Tomáš Roll 12. 10. 2018, 16:36:11

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 16:38:20
Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

ne.

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

píšeš, že používáš Flow. Typescript je náhrada za Flow. Nic víc.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 16:45:43
Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

ne.

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

píšeš, že používáš Flow. Typescript je náhrada za Flow. Nic víc.

Vyhol si sa odpovedi. Navyše,  Flow nie je náhrada, a ani ho nepoužívam. Nie v tom zmysle, že si v JS definujem typy. Len nad kódom, bez typov, po dopísaní spustím automatickú kontrolu od Flow. Takže? Skúsiš odpoveď na moju predošlú otázku? Alebo ani netreba, lebo mám pravdu a len sa ti to blbo pripúšťa?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Tomáš Roll 12. 10. 2018, 16:51:07

píšeš, že používáš Flow. Typescript je náhrada za Flow. Nic víc.

Typescript přidává generiku. Má javascript generiku?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 16:54:06

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 16:54:24

píšeš, že používáš Flow. Typescript je náhrada za Flow. Nic víc.

Typescript přidává generiku. Má javascript generiku?

ano, Flow má generika.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 16:55:54

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 16:57:40

píšeš, že používáš Flow. Typescript je náhrada za Flow. Nic víc.

Typescript přidává generiku. Má javascript generiku?

Aha. No tak mi povedz ako generiku implementujú po transpilácii vo výslednom JS.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Tomáš Roll 12. 10. 2018, 16:58:21

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

A kdyby hodnota nebyla správná, co by měla runtime kontrola udělat?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Tomáš Roll 12. 10. 2018, 16:59:23

Typescript přidává generiku. Má javascript generiku?

Aha. No tak mi povedz ako generiku implementujú po transpilácii vo výslednom JS.

A proč si myslíš, že se teď bavím s tebou?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:00:37

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 17:02:44
Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

ne.

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

píšeš, že používáš Flow. Typescript je náhrada za Flow. Nic víc.

Vyhol si sa odpovedi. Navyše,  Flow nie je náhrada, a ani ho nepoužívam. Nie v tom zmysle, že si v JS definujem typy. Len nad kódom, bez typov, po dopísaní spustím automatickú kontrolu od Flow. Takže? Skúsiš odpoveď na moju predošlú otázku? Alebo ani netreba, lebo mám pravdu a len sa ti to blbo pripúšťa?

Ano, musíš typy kontrolovat sám, ale nemusíš v každé funkci, stačí pouze na vstupu. Typescript ohlídá, že to děláš správně. Stejně jako Flow. To je odpověď na předchozí otázku. Typescript s anotacemi je +- to stejné co Flow s anotacemi.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 17:04:18
Aha. No tak mi povedz ako generiku implementujú po transpilácii vo výslednom JS.

končím.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 17:05:38

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:09:13
Otázka je jednoduchá a čakám jednoduchú odpoveď. Áno, definovanie typu zabezpečí pri transpilácii dopísanie kontroly na daný typ / Nie, pri transpilácii sa kontrola na daný typ do kódu nedopíše.

ne.

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

píšeš, že používáš Flow. Typescript je náhrada za Flow. Nic víc.

Vyhol si sa odpovedi. Navyše,  Flow nie je náhrada, a ani ho nepoužívam. Nie v tom zmysle, že si v JS definujem typy. Len nad kódom, bez typov, po dopísaní spustím automatickú kontrolu od Flow. Takže? Skúsiš odpoveď na moju predošlú otázku? Alebo ani netreba, lebo mám pravdu a len sa ti to blbo pripúšťa?

Ano, musíš typy kontrolovat sám, ale nemusíš v každé funkci, stačí pouze na vstupu. Typescript ohlídá, že to děláš správně. Stejně jako Flow. To je odpověď na předchozí otázku. Typescript s anotacemi je +- to stejné co Flow s anotacemi.

Ale prirodzene, že runtime kontroly píšeš len do funkcií, ktoré berú vstupy. Akurát sa pletieš v tom, že TS nijak neohlídá či to robím správne. Nemá ako.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:10:23

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.

A ty že v čom programuješ? Robot Karel?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 17:11:31

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.

A ty že v čom programuješ? Robot Karel?

Jak to souvisí s problematikou?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:17:32

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.

A ty že v čom programuješ? Robot Karel?

Jak to souvisí s problematikou?

Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: . 12. 10. 2018, 17:23:27

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.

A ty že v čom programuješ? Robot Karel?

Jak to souvisí s problematikou?

Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?
Nevíte někdo, kdo toho waldemara zaměstnává? Že bychom mu poslali odkaz na tuhle diskusi. Za normálních podmínek by musel dostat hodinovou výpověď.

Proboha, jak může takový ... programovat. On ani netuší, co mu přijde na vstup a že to musí kontrolovat. Kolik tříd základky máš?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:29:08

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.

A ty že v čom programuješ? Robot Karel?

Jak to souvisí s problematikou?

Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?
Nevíte někdo, kdo toho waldemara zaměstnává? Že bychom mu poslali odkaz na tuhle diskusi. Za normálních podmínek by musel dostat hodinovou výpověď.

Proboha, jak může takový ... programovat. On ani netuší, co mu přijde na vstup a že to musí kontrolovat. Kolik tříd základky máš?

Čo si ty za blbečka? Tak daj túto diskusiu prečítať web developerovi s praxou, ktorého považuješ za autoritu. Vysvetlí ti, prečo na webe vstupom nesmieš veriť, lebo netušíš, čo ti naň príde. Ale ak chceš, pokojne sa strápňuj ďalej. Aj to je cesta ako sa niečo naučiť.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Bacsa 12. 10. 2018, 17:30:31

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.

A ty že v čom programuješ? Robot Karel?

Jak to souvisí s problematikou?

Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?
Přečti si dokumentaci. TS má třídu CrystalBall, která ti to řekne. A taky má užitečnou statickou metodu, zkus zavolat CrystalBall.isCretin(Waldemar) ;)
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: . 12. 10. 2018, 17:32:42
Čo si ty za blbečka? Tak daj túto diskusiu prečítať web developerovi s praxou, ktorého považuješ za autoritu. Vysvetlí ti, prečo na webe vstupom nesmieš veriť, lebo netušíš, čo ti naň príde. Ale ak chceš, pokojne sa strápňuj ďalej. Aj to je cesta ako sa niečo naučiť.
Chápu, že jako Slovák máš problémy s pochopením češtiny, to tě omlouvá (i když velká většina Slováků tenhle problém nemá).

P.S.: Už jsi zapracoval na domácím úkolu? Ale rozumím tomu, že ti je trapné přiznat, že nevíš.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Bacsa 12. 10. 2018, 17:33:13

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.

A ty že v čom programuješ? Robot Karel?

Jak to souvisí s problematikou?

Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?
Nevíte někdo, kdo toho waldemara zaměstnává? Že bychom mu poslali odkaz na tuhle diskusi. Za normálních podmínek by musel dostat hodinovou výpověď.

Proboha, jak může takový ... programovat. On ani netuší, co mu přijde na vstup a že to musí kontrolovat. Kolik tříd základky máš?
pokojne sa strápňuj ďalej.
Super vtip, retardíku  ;D
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: mmm 12. 10. 2018, 17:36:58
Proboha, jak může takový ... programovat. On ani netuší, co mu přijde na vstup a že to musí kontrolovat. Kolik tříd základky máš?

má pravdu. Runtime validace je u webových aplikací důležitější než statická kontrola. Ale mohl by si sám vyzkoušet co statická kontrola umí/neumí.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 17:39:55

Takže za runtime mi nie je TS nič platné?Dokonca, všeobecne mi za runtime ani v staticky, ani v dynamicky typovanom jazyku s TS nie sú typy nič platné a musím si typy vstupných hodnôt ustrážiť sám?

A co by tak runtime kontrola jako měla udělat?

Skontrolovať správnosť typu hodnoty zo vstupu počas behu programu? Aby funkcia ktorá tú hodnotu obdrží nespôsobila pád programu v prípade staticky typovaného jazyka, alebo nevrátila nezmysel v prípade dynamicky typovaného?

Ale uvědomuješ si, že v případě TS takový scénář nenastane?

TS vie počas transpilácie čo mi príde na vstup za behu? Či vo formulári, či v GET, či v JSON?

Ano.

A ty že v čom programuješ? Robot Karel?

Jak to souvisí s problematikou?

Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?
Protože to co povídáš není pravda.

Na vstupu nedostane 123. Nikdy. Popravdě, neznám jazyk, kde by na vstupu dostal 123.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:40:38
Vy dva idioti, Bača s bodkou ste tak roztomilí :D Ale tadiaľ, úsmevnými pokusmi zhodiť niekoho, kto vám kladie nepohodlné otázky jasne poukazujúce na vašu neznalosť, cesta k znalostiam ani k úspechu nevedie :) Takže šup šup, odpovedať na otázky, miesto srať si do huby ;)
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: listoper 12. 10. 2018, 17:43:45
Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?

Vim, ze diskuze je tady spis kvuli aroganci a urazkam, ale ja sem si kvuli vam dneska poprve vyzkousel typescript tak se podelim.
A treba to pomuze nekomu pochopit ze to co se zda jako "cisty nezmysel" nemusi nutne byt takovy nezmysel:
http://www.typescriptlang.org/play/#src=function%20pow(a%3A%20number)%20%7B%0D%0A%20%20%20%20return%20a%20*%20a%3B%0D%0A%7D%0D%0A%0D%0Afunction%20handleInput(input%3A%20string)%20%7B%0D%0A%20%20%20%20pow(input)%3B%0D%0A%7D%0D%0A%0D%0AhandleInput(%22Jo%C5%BEo%22)%3B (http://www.typescriptlang.org/play/#src=function%20pow(a%3A%20number)%20%7B%0D%0A%20%20%20%20return%20a%20*%20a%3B%0D%0A%7D%0D%0A%0D%0Afunction%20handleInput(input%3A%20string)%20%7B%0D%0A%20%20%20%20pow(input)%3B%0D%0A%7D%0D%0A%0D%0AhandleInput(%22Jo%C5%BEo%22)%3B)

Protoze TS sice nevi presne co prijde, ale vi, ze kdyz uz neco prijde tak to neco bude.
A kdyz to neco budes chtit pouzit jako cislo tak te "donuti" zaridit aby to cislo bylo
a kdyz nebudes blbej tak i osetris co se ma stat kdyz z toho to cislo nejde udelat...
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:44:39
Proboha, jak může takový ... programovat. On ani netuší, co mu přijde na vstup a že to musí kontrolovat. Kolik tříd základky máš?

má pravdu. Runtime validace je u webových aplikací důležitější než statická kontrola. Ale mohl by si sám vyzkoušet co statická kontrola umí/neumí.

Presne tak. Aspoň, že ješitný nie si, ďakujem Ti už len za to.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:49:49
Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?

Vim, ze diskuze je tady spis kvuli aroganci a urazkam, ale ja sem si kvuli vam dneska poprve vyzkousel typescript tak se podelim.
A treba to pomuze nekomu pochopit ze to co se zda jako "cisty nezmysel" nemusi nutne byt takovy nezmysel:
http://www.typescriptlang.org/play/#src=function%20pow(a%3A%20number)%20%7B%0D%0A%20%20%20%20return%20a%20*%20a%3B%0D%0A%7D%0D%0A%0D%0Afunction%20handleInput(input%3A%20string)%20%7B%0D%0A%20%20%20%20pow(input)%3B%0D%0A%7D%0D%0A%0D%0AhandleInput(%22Jo%C5%BEo%22)%3B (http://www.typescriptlang.org/play/#src=function%20pow(a%3A%20number)%20%7B%0D%0A%20%20%20%20return%20a%20*%20a%3B%0D%0A%7D%0D%0A%0D%0Afunction%20handleInput(input%3A%20string)%20%7B%0D%0A%20%20%20%20pow(input)%3B%0D%0A%7D%0D%0A%0D%0AhandleInput(%22Jo%C5%BEo%22)%3B)

Protoze TS sice nevi presne co prijde, ale vi, ze kdyz uz neco prijde tak to neco bude.
A kdyz to neco budes chtit pouzit jako cislo tak te "donuti" zaridit aby to cislo bylo
a kdyz nebudes blbej tak i osetris co se ma stat kdyz z toho to cislo nejde udelat...

Ja nie som arogantný, len nemám trpezlivosť s idiotmi na fórach. Ale vďaka tomuto tvojmu príspevku, naznačujúcemu, že si TS aspoň v design time vynúti dopísanie runtime kontroly na daný typ, si ako prejdem dokumentáciu, tak si ho aj vyskúšam, lebo aj to považujem za cestu ku bezpečnejšiemu kódu. Ďakujem Tebe aj mmm za váš prístup a príspevky.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 17:51:09
A vy dvaja kokoti, hor sa učiť a nie smrdieť tam, kde neviete o čom je reč :P
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 17:52:35
Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?

Vim, ze diskuze je tady spis kvuli aroganci a urazkam, ale ja sem si kvuli vam dneska poprve vyzkousel typescript tak se podelim.
A treba to pomuze nekomu pochopit ze to co se zda jako "cisty nezmysel" nemusi nutne byt takovy nezmysel:
http://www.typescriptlang.org/play/#src=function%20pow(a%3A%20number)%20%7B%0D%0A%20%20%20%20return%20a%20*%20a%3B%0D%0A%7D%0D%0A%0D%0Afunction%20handleInput(input%3A%20string)%20%7B%0D%0A%20%20%20%20pow(input)%3B%0D%0A%7D%0D%0A%0D%0AhandleInput(%22Jo%C5%BEo%22)%3B (http://www.typescriptlang.org/play/#src=function%20pow(a%3A%20number)%20%7B%0D%0A%20%20%20%20return%20a%20*%20a%3B%0D%0A%7D%0D%0A%0D%0Afunction%20handleInput(input%3A%20string)%20%7B%0D%0A%20%20%20%20pow(input)%3B%0D%0A%7D%0D%0A%0D%0AhandleInput(%22Jo%C5%BEo%22)%3B)

Protoze TS sice nevi presne co prijde, ale vi, ze kdyz uz neco prijde tak to neco bude.
A kdyz to neco budes chtit pouzit jako cislo tak te "donuti" zaridit aby to cislo bylo
a kdyz nebudes blbej tak i osetris co se ma stat kdyz z toho to cislo nejde udelat...

Asi mi uniká pointa.

Pro edukativní účely pro @Wal-De-Mar-a to je ale řekl bych nešikovné. Páč ta funkce handleInput je "ve vzduchu". A samozřejmě se to nepřeloží.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: listoper 12. 10. 2018, 17:58:44
Tak, že si povedal čistý nezmysel. Alebo mi povedz ako si dospel k tomu, že v JS dopredu viem typ hodnoty aká mi príde na vstupe. Očakávam, že príde 123, miesto toho príde 'Jožo'. Odkiaľ by som toto mohol vedieť vopred?

Vim, ze diskuze je tady spis kvuli aroganci a urazkam, ale ja sem si kvuli vam dneska poprve vyzkousel typescript tak se podelim.
A treba to pomuze nekomu pochopit ze to co se zda jako "cisty nezmysel" nemusi nutne byt takovy nezmysel:
http://www.typescriptlang.org/play/#src=function%20pow(a%3A%20number)%20%7B%0D%0A%20%20%20%20return%20a%20*%20a%3B%0D%0A%7D%0D%0A%0D%0Afunction%20handleInput(input%3A%20string)%20%7B%0D%0A%20%20%20%20pow(input)%3B%0D%0A%7D%0D%0A%0D%0AhandleInput(%22Jo%C5%BEo%22)%3B (http://www.typescriptlang.org/play/#src=function%20pow(a%3A%20number)%20%7B%0D%0A%20%20%20%20return%20a%20*%20a%3B%0D%0A%7D%0D%0A%0D%0Afunction%20handleInput(input%3A%20string)%20%7B%0D%0A%20%20%20%20pow(input)%3B%0D%0A%7D%0D%0A%0D%0AhandleInput(%22Jo%C5%BEo%22)%3B)

Protoze TS sice nevi presne co prijde, ale vi, ze kdyz uz neco prijde tak to neco bude.
A kdyz to neco budes chtit pouzit jako cislo tak te "donuti" zaridit aby to cislo bylo
a kdyz nebudes blbej tak i osetris co se ma stat kdyz z toho to cislo nejde udelat...

Asi mi uniká pointa.

Pro edukativní účely pro @Wal-De-Mar-a to je ale řekl bych nešikovné. Páč ta funkce handleInput je "ve vzduchu". A samozřejmě se to nepřeloží.

Pointa byla, ze se to neprelozi, protoze nesedi typy, a zda se ze mu to pomohlo...
Co znamena, ze je "ve vzduchu"?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 18:06:18
Pointa byla, ze se to neprelozi, protoze nesedi typy, a zda se ze mu to pomohlo...
Co znamena, ze je "ve vzduchu"?

Ty tam té funkci uvádíš konkrétní typ tím, že tam tu hodnotu zapíšeš. Takže si typový systém už v compile-type odvodí, zda všechno sedí. Což mu nepomohlo pochopit, že jeho představa o hlídání typů run-time je mylná.

Ta hodnota by musela přijít z venčí, aby bylo možné tam něco dynamicky měnit a zkusit to rozbít.

Navíc @Wal-De-Mar žije v představě, že mu z formuláře přijde číslo.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: listoper 12. 10. 2018, 18:31:41
Pointa byla, ze se to neprelozi, protoze nesedi typy, a zda se ze mu to pomohlo...
Co znamena, ze je "ve vzduchu"?

Ty tam té funkci uvádíš konkrétní typ tím, že tam tu hodnotu zapíšeš. Takže si typový systém už v compile-type odvodí, zda všechno sedí. Což mu nepomohlo pochopit, že jeho představa o hlídání typů run-time je mylná.

Ta hodnota by musela přijít z venčí, aby bylo možné tam něco dynamicky měnit a zkusit to rozbít.

Navíc @Wal-De-Mar žije v představě, že mu z formuláře přijde číslo.

:-) ty ses prisnej.
Ja sem emuloval ten venek tim volanim handleInput, s tim, ze si muze vyzkouset tam poslat neco jineho.
Ani nevim jestli ten playground podporuje nejakej venek...
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 18:47:37
Hm. Problém je toto:

Citace
As explained by Eric Elliot in the following great article,
“static types do not reduce overall bug density”.
Types are written by the developers and not checked at runtime, so the “strength” of your program depends on your usage of TypeScript.
If you looking at TypeScript to reduce your bugs, please look at TDD instead.

Alebo od iného autora:

Citace
One thing that many beginners do not understand about TypeScript is that it does not guarantee type-correctness at runtime. Your TypeScript code might be fully typed and the compiler ensures you that everything must be correct… but at runtime you still get errors because your variables might be of the wrong types! Type error might still enter your system at the “untyped” boundaries … i.e. when getting json from the network or from local storage or even from the DOM.
By design TypeScript does no type checks at runtime. If you want type checks at runtime you have to implement them. Typically this means some duplication between the types you implement for compile-time checking and the types you build for run-time checking. Libraries like prop-types or io-ts help with defining type-checks at runtime. But there will be some duplication.

Takže nie, stále čítam to, čo som zistil aj sám.

Citace
With TypeScript, I can trust my code at runtime
TypeScript is a static type-checking tool, it does not guarantee that your code will run as expected at runtime. Although your function is “typed”, TypeScript ignores the type validation if a developer choose to type-cast the argument to any .
For more information about type-casting, please follow me for Chapter 2.

Remember that TypeScript will not make type assertions at runtime

Hm. Ani TS, ani Java nepomôže. Či dynamicky, či staticky typovaný jazyk, v klient-server aplikácii si vstupy musíte kontrolovať ručne a neveriť jedinej hodnote s pôvodom zo siete.

Citace
TypeScript looks more like C#, I don’t need to understand JavaScript
As a JavaScript lover for a long time, I always privilege functional approach compared to Object Oriented one.

I consider that TypeScript should be here to facilitate team work, increase velocity and improve project maintainability.

TypeScript shouldn't be used (in my opinion) to put some non-JavaScript developers on the front-end as fast as possible.

TypeScript is still JavaScript, so understanding JavaScript is important.

To je pre tú lopatu čo mi tu argumentovala, že ani len nemusím vedieť JS a môžem sa rovno naučiť TS.

Citace
JavaScript is extremely popular. By using TypeScript, you are focusing on a language that is less popular, therefore the pool of developers that can or want to work on your projects is smaller.
Depending on your project this might be a limitation or a factor that helps to ensure the right developers get on the project.

By choosing TypeScript, you are limiting the pool of developers that might work on your project.

Potvrdenie opodstatnenia mojej otázky, ktoré som tu tiež spomenul.

Citace
I worry about building up a large codebase using TypeScript, only to have the ECMAScript spec introduce conflicting keywords and type features
- Eric Elliot, The Shocking Secret About Static Types
TypeScript does not have the same momentum as JavaScript. By using TypeScript you choose a path that bears some more risks than betting on JavaScript.
Also TypeScript does not shield you from having to deeply understand JavaScript. A TypeScript expert must also be a JavaScript expert!

A stále dokola to isté, od iného autora.

Zhrnutie? Nie je to také jednoznačné, tým pádom ani nie jednoduché rozhodnúť sa. Chápem prínos TS, ale možný lock-in, problémy a predraženie ktoré prináša, musí mať silné opodstatnenie. A to vidím asi v takmer každom väčšom projekte, ale stále tu vidím aj veľa use cases, kedy po TS predsalen nesiahnuť.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 19:03:17
Ja sem emuloval ten venek tim volanim handleInput, s tim, ze si muze vyzkouset tam poslat neco jineho.
Ani nevim jestli ten playground podporuje nejakej venek...

Je mi to zcela jasný.

Tak já jsem si, abych nebyl za blba, taky pro jistotu TC nainstaloval a zkusil si to.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 19:04:46
BoneFloutek, už sa spämataj ty mudrlant :) Žiadny z tvojich pokusov o pseudoakademické argumenty nepovedie k vyvráteniu faktu potreby ručne písaných kontrol typov a rozsahom hodnôt získaných za behu z nedôveryhodných zdrojov. Žiadny typový systém ťa pred tým neochráni, ani statický nie. Pokiaľ teda pád programu nepovažuješ naivne za riešenie, lebo to je všetko, k čomu to povedie. Neviem, či si odniekiaľ zvyknutý argumentovať zákazníkom v zmysle "Akože je náš program zlý za to, že spadol. Veď to je ochrana aby neurobil niečo nesprávne, to je vlastnosť nášho programu a sme na to hrdí, nie nedostatok. Užívateľ tam nemal zadať písmená, keď mu tam píšeme, že má zadať číslo, to je len a len jeho chyba.", ale takto to v reálnom svete nefunguje. Ale ako nebránim ti, píš čo aj vyslovené kokotiny, lebo aj v tom si možno nájdem niečo pozitívne. Akurát, že sa ma nepokúšaj zhadzovať, to jediné zmysel fakt nemá. Ď.
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 19:13:41
Akurát, že sa ma nepokúšaj zhadzovať, to jediné zmysel fakt nemá. Ď.

Souhlasím. Na to mě nepotřebuješ :-)
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: Wal-De-Mar 12. 10. 2018, 19:17:34
Akurát, že sa ma nepokúšaj zhadzovať, to jediné zmysel fakt nemá. Ď.

Souhlasím. Na to mě nepotřebuješ :-)

Hezkej pokus :) Avšak nič platný ;)
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: tacoberu 12. 10. 2018, 20:46:42
3. TS neohlídá všechno (pokud mi něco neuniklo), takže pokud mu něco "vnutíš" tak slítne. Ale obvykle máš vstupy otypovaný, tudíž víš, že ten formulář ti vrátí string, a tak tě to přinutí k tomu ho přetypovat na int. Při normální práci ti to nespadne.

Nějaká ukázka, jak mu vnutit špatný vstup aby slítl?
Název: Re:Funguje TypeScript aj za run-time?
Přispěvatel: BoneFlute 12. 10. 2018, 21:16:02
3. TS neohlídá všechno (pokud mi něco neuniklo), takže pokud mu něco "vnutíš" tak slítne. Ale obvykle máš vstupy otypovaný, tudíž víš, že ten formulář ti vrátí string, a tak tě to přinutí k tomu ho přetypovat na int. Při normální práci ti to nespadne.

Nějaká ukázka, jak mu vnutit špatný vstup aby slítl?

Upřímně, teď z hlavy ani nevím. Když na to narazím, dám to sem k dobru.