Funguje TypeScript aj za run-time?

Bacsa

Re:Funguje TypeScript aj za run-time?
« Odpověď #90 kdy: 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) ;)


.

Re:Funguje TypeScript aj za run-time?
« Odpověď #91 kdy: 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íš.

Bacsa

Re:Funguje TypeScript aj za run-time?
« Odpověď #92 kdy: 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

mmm

Re:Funguje TypeScript aj za run-time?
« Odpověď #93 kdy: 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í.

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #94 kdy: 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.


Re:Funguje TypeScript aj za run-time?
« Odpověď #95 kdy: 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 ;)

Re:Funguje TypeScript aj za run-time?
« Odpověď #96 kdy: 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

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...

Re:Funguje TypeScript aj za run-time?
« Odpověď #97 kdy: 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.

Re:Funguje TypeScript aj za run-time?
« Odpověď #98 kdy: 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

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.
« Poslední změna: 12. 10. 2018, 17:51:54 od Wal-De-Mar »

Re:Funguje TypeScript aj za run-time?
« Odpověď #99 kdy: 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

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #100 kdy: 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

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ží.

Re:Funguje TypeScript aj za run-time?
« Odpověď #101 kdy: 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

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"?

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Funguje TypeScript aj za run-time?
« Odpověď #102 kdy: 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.

Re:Funguje TypeScript aj za run-time?
« Odpověď #103 kdy: 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...

Re:Funguje TypeScript aj za run-time?
« Odpověď #104 kdy: 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ť.