Komentáře k článku

K čemu je dobrý TypeScript

TypeScript je určený pro aplikace obsahující mnoho javascriptového kódu. Jedná se o nadstavbu jazyka JavaScript. Nabízí typovou kontrolu, třídy, moduly rozhraní, IntelliSense a refactoring kódu. Jeho syntaxe je navržena tak, aby byla co nejvíce shodná se syntaxí ECMAScript 6.

Zpět na článek

13 komentářů k článku K čemu je dobrý TypeScript:

  1. bono

    Netbeans plugin
    Netbeans plugin odkazovany v clanku je trochu neco jineho – TypoScript – coz je jezyk pouzity v Typo3 CMS systemu a s TypeScriptem nema nic spolecneho.

      1. maryo

        Re: Netbeans plugin
        Bohužel ale WebStorm nepoužívá typescriptService a Sublime plugin není zase s nejnovější kompatibilní :-/. Docela zajímávej je taky CATS, editor ve vývoji běžící na node-webkit a AceEditoru.

  2. JanTvrdik

    Jsem velký fanoušek TypeScriptu, ale tenhle článek mě vyloženě sere zkreslováním a neúplností informací a vůbec použitým úhlem pohledu. Pořád nechápu, proč má tolik článků potřebu dívat se na TypeScriptu z pohledu C#. Ty jazyky spolu přitom mají velmi málo společného (jiná architektura i primární použití). Mnohem větší smysl mi dává se na TypeScript dívat z pohledu JS. Tam jsou pak jasně vidět ty dva základní pilíře, na kterých TS stojí.

    1. Rozšíření jazyka o moduly, třídy, rozhraní apod.
    Většina z těchto věcí se v identické nebo podobné variantě dostane do ECMAScript 6 Harmony. Nutno podotknout, že ES6 toho plánuje přidat ještě o mnoho více, než to, co v současnosti umí TS. To podstatné, co ale TS nabízí, je možnost tyto novinky používat už nyní. Nejpopulárnější alternativou je tady asi bezpochyby CoffeeScript. V budoucnu může být hodně zajímavý i Dart.

    2. Typová kontrola
    Tohle je věc, která se do JS (resp. ES obecně) nedostane vůbec, nebo rozhodně ne v brzké době. Je důležité zmínit, že typový systém TS byl navržen na míru reálně existujícímu JS. Díky tomu je možné typově popsat i takové prasárny (z hlediska návrhu) jako je jQuery. Stejně tak je ale důležité zmínit, že typová kontrola je zcela volitelná a pokud vám vyhovuje psát bez typů stejně jako v JS, tak to v TS nepředstavuje žádný problém.
    Nejpoužívanější alternativou (nechápu proč není zmíněna v článku) je psaní anotací pro Google Closure Compiler. Tyto anotace je zároveň možné zkombinovat i s CoffeeScriptem (viz Este.js od Steigerwalda) a pak dostáváme jak typovou kontrolu, tak třídy. Velkou výhodu oproti TS je navíc špičková JS knihovna a kompilátor (s advanced modem a dead code removal), který pokud vím nemá žádnou alternativu. TypeScript je ale oproti tomu výrazně jednodušší na zprovoznění a osobně mi jeho syntaxe vyhovuje víc. TS navíc umožňuje velmi elegantně doplnit typové informace i k existujícímu JS kódu, což nevím jestli jde nějak vyřešit anotacemi. V budoucnu může být opět zajímavou alternativou i Dart.

    Co se podpory editorů a IDE týče, tak Microsoft osobně se stará o integraci do Visual Studia. Dále pak existuje plugin do Sublime Textu a nativně ho podporuje i WebStorm / PhpStorm od verze 6 (TS 0.8). Plánovaná verze 7 (dostupná zatím zdarma v rámci EAP) podporuje aktuální TS 0.9. O dalších osobně nevím.

    1. Václav DajbychAutor příspěvku

      Jak v článku uvádím, typová kontrola je nezbytná pro jazyky, ve kterých se programují aplikace s tisíci řádky kódu. V současné době nevypadá, že by v brzké době ECMAScript typovou kontrolu nabídnul. Proto vyvstává otázka, jak psát javascriptový kód stejným stylem, jako se píše C# kód ve Visual Studiu. Porovnávat TypeScript s jazykem C# je na místě také z toho důvodu, že za návrhem těchto jazyků stojí tentýž člověk.
      Deklarace datových typů v komentáři mi přijde přinejmenším dost zvláštní. To už je na tom lépe Fortran se svou deklarací datového typu na základě prvního znaku názvu proměnné. Proto se o této technice v článku nezmiňuji.

      1. Jan Tvrdík

        Re:
        > Proto vyvstává otázka, jak psát javascriptový kód stejným stylem, jako se píše C# kód ve Visual Studiu
        Žádná taková otázka nevyvstává. JS s třídami a datovými typy není C# a nepíše se stejným stylem.

        > Deklarace datových typů v komentáři mi přijde přinejmenším dost zvláštní.
        To jste zřejmě nikdy nic nepsal v JS ani v PHP, protože v obou jazycích se jedná o zažitou praxi. Navíc Google Closure Compiler navíc dokáže (zatím) informaci o datových typech použít mnohem efektivněji, než TypeScript Compiler.

  3. maryo

    Kombinace Google Closure Compileru a CoffeeScriptu není bezproblémová. Closure compiler s CoffeeScriptem není moc kompatibilní. Jde to, ale musí se zkompilovanej CoffeeScript ještě parsovat a upravit. Este.js to řeší. Ale mám dojem, že se stejně pak musí pár věcem vyhnout.

  4. Anton

    Plugin pre Sublime
    Ako sa vola ten plugin pre sublime? Nejake pluginy som skusal, ale ani jeden mi neprisiel pouzitelny.

  5. blizz

    cofeescript (eventualne LiveScript) a dalsie jazyky vychadzajucez Javascriptu nie su beztypove jazyky, JS typy ma prosim, prestudujte si co to je to staticka a dynamicka typova kontrola a aky je rozdiel medzi strong vs weak typing.

    1. Ladislav Thon

      Re:
      Když už se oháníš slovy „prostudujte si“, tak lidi od teorie typů výrazy statické a dynamické typování nepoužívají. Používají… tadá!… výrazy typové a netypové jazyky. Z pohledu formální sémantiky jsou dynamicky typované jazyky speciálním případem staticky typovaných jazyků, které mají jenom jeden typ (určitá forma rekurzivního součtového typu). Takže tomu, čemu my říkáme dynamicky typované jazyky, oni říkají „untyped“ nebo „unityped“, což jsou výrazy, pod kterými bychom my chápali něco úplně jiného. Pokud jde o silné a slabé typování, tam je terminologie ještě zmatenější. Doporučuju se na tyhle debaty úplně vykašlat (s plným vědomím jejich atraktivnosti, sám jsem se řady z nich zúčastnil :-) ).

      Stran článku: kde jsou benchmarky k tomu, že Dart je výrazně pomalejší než JavaScript? Já můžu sloužit jenom tímhle: https://www.dartlang.org/performance/ což ukazuje, že v některých situacích je idiomatický Dart zkompilovaný do JavaScriptu rychlejší než idiomatický JavaScript :-)

      1. Václav DajbychAutor příspěvku

        Nevím, kde jsou srovnání výkonu JavaScriptu z kompilátorů pro Dart a TypeScript. Myslím, že je lidé nepotřebují. Je to těžké měřit, když je tolik rozdílných runtimů a ještě se tak rychle vyvíjí. Myslím si, že je to dokonce zbytečné. Já tvrzení, že TypeScript je rychlejší než Dart, stavím na tom, že TypeScript mě nenutí používat složité knihovny. Samozřejmě kdybych v TypeScriptu použil nějakou pomalejší knihovnu, než v Dartu, tak je pomalejší TypeScript.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=9774