Ero sivun ”TypeScript” versioiden välillä
pEi muokkausyhteenvetoa |
tekstin muotoilua |
||
| Rivi 25: | Rivi 25: | ||
'''TypeScript''' on ohjelmointikieli, joka on suunniteltu erityisesti suurten [[JavaScript]]-sovellusten kehittämiseen. Se on [[Microsoft]]in kehittämä ja ylläpitämä, avoimen lähdekoodin kieli. | '''TypeScript''' on ohjelmointikieli, joka on suunniteltu erityisesti suurten [[JavaScript]]-sovellusten kehittämiseen. Se on [[Microsoft]]in kehittämä ja ylläpitämä, avoimen lähdekoodin kieli. | ||
== TypeScriptin perusta == | |||
TypeScript tuo staattisen tyypityksen ja muita suurten sovellusten kehittämiseen soveltuvia ominaisuuksia [[JavaScript]]in päälle. Se toimii Supersettinä JavaScriptille, eli jokainen validi JavaScript-koodi on myös validia TypeScript-koodia. Lopuksi se sitten transpiloituu tavalliseksi JavaScriptiksi, jota [[Selain|selaimet]] ja [[Node.js]]-ympäristöt ymmärtävät. | |||
== Tyypityksen | == Tyypityksen ero: TypeScript vs. JavaScript == | ||
Tyypityksen ero on merkittävin virheiden havaitsemisessa jo kehitysvaiheessa verrattuna virheiden havaitsemiseen vasta ohjelman suoritusvaiheessa (runtime). | |||
1. Dynaaminen Tyypitys (JavaScript) | |||
* JavaScript on dynaamisesti tyypitetty kieli. Muuttujien tyyppi tarkistetaan vasta suorituksen aikana. | |||
* Tämä voi johtaa piileviin virheisiin ja odottamattomaan tyyppipakkokeinoon (Type Coercion). | |||
2. Staattinen Tyypitys (TypeScript) | |||
* TypeScript on staattisesti tyypitetty kieli. Muuttujien, funktioiden parametrien ja paluuarvojen tyypit tarkistetaan käännösaikana (compile-time). | |||
* TypeScript on staattisesti tyypitetty kieli | * Varhainen virheen havainnointi: Jos yrität syöttää funktioon vääräntyyppisen arvon (esim. merkkijonon numeron sijaan), TypeScriptin kääntäjä antaa virheilmoituksen heti kehitysvaiheessa. Tämä estää monia runtime-virheitä. | ||
* Varhainen virheen havainnointi: Jos yrität syöttää funktioon merkkijonon | |||
3. Tyyppipäättely ja Merkinnät | |||
* Valinnainen: Vaikka TypeScript on staattisesti tyypitetty, tyyppimerkinnät ('' | * Valinnainen Tyyppimerkintä: Vaikka TypeScript on staattisesti tyypitetty, tyyppimerkinnät ('': number'', '': string'' jne.) ovat usein valinnaisia. | ||
* Tyyppipäättely (Type Inference): Useimmissa tapauksissa TypeScript on riittävän älykäs päättelemään muuttujan tyypin sen arvon perusteella. | * Tyyppipäättely (Type Inference): Useimmissa tapauksissa TypeScript on riittävän älykäs päättelemään muuttujan tyypin sen arvon perusteella, vähentäen manuaalisen tyypityksen tarvetta. | ||
Versio 23. marraskuuta 2025 kello 19.06
| TypeScript | |
|---|---|
| Paradigma | Moniparadigmainen |
| Tyypitys | Vahva, staattinen |
| Evaluointitapa | Laiska ja innokas |
| Suoritusmalli | Käännetty (transpiloituu JavaScriptiksi), tulkattu ja ajonaikainen |
| Muistinhallinta | Automaattinen |
| Tekijä(t) | Anders Hejlsberg (Microsoft) |
| Kehittäjä(t) | Microsoft |
| Moottori | JavaScript-moottorit (esim. V8 (Chrome, Node.js), SpiderMonkey (Firefox)) |
| Ensijulkaisu | Lokakuu 2012 |
| Käyttöliittymä | Web-sovellukset, työpöytäsovellukset (Electron), mobiilisovellukset (React Native)) |
| Tyyppi | Transpiloituva kieli |
| Lisenssi | Apache-lisenssi v2.0 |
| Kotisivu | typescriptlang.org |
| Lähdekoodi | github.com/microsoft/TypeScript |
TypeScript on ohjelmointikieli, joka on suunniteltu erityisesti suurten JavaScript-sovellusten kehittämiseen. Se on Microsoftin kehittämä ja ylläpitämä, avoimen lähdekoodin kieli.
TypeScriptin perusta
TypeScript tuo staattisen tyypityksen ja muita suurten sovellusten kehittämiseen soveltuvia ominaisuuksia JavaScriptin päälle. Se toimii Supersettinä JavaScriptille, eli jokainen validi JavaScript-koodi on myös validia TypeScript-koodia. Lopuksi se sitten transpiloituu tavalliseksi JavaScriptiksi, jota selaimet ja Node.js-ympäristöt ymmärtävät.
Tyypityksen ero: TypeScript vs. JavaScript
Tyypityksen ero on merkittävin virheiden havaitsemisessa jo kehitysvaiheessa verrattuna virheiden havaitsemiseen vasta ohjelman suoritusvaiheessa (runtime).
1. Dynaaminen Tyypitys (JavaScript)
- JavaScript on dynaamisesti tyypitetty kieli. Muuttujien tyyppi tarkistetaan vasta suorituksen aikana.
- Tämä voi johtaa piileviin virheisiin ja odottamattomaan tyyppipakkokeinoon (Type Coercion).
2. Staattinen Tyypitys (TypeScript)
- TypeScript on staattisesti tyypitetty kieli. Muuttujien, funktioiden parametrien ja paluuarvojen tyypit tarkistetaan käännösaikana (compile-time).
- Varhainen virheen havainnointi: Jos yrität syöttää funktioon vääräntyyppisen arvon (esim. merkkijonon numeron sijaan), TypeScriptin kääntäjä antaa virheilmoituksen heti kehitysvaiheessa. Tämä estää monia runtime-virheitä.
3. Tyyppipäättely ja Merkinnät
- Valinnainen Tyyppimerkintä: Vaikka TypeScript on staattisesti tyypitetty, tyyppimerkinnät (: number, : string jne.) ovat usein valinnaisia.
- Tyyppipäättely (Type Inference): Useimmissa tapauksissa TypeScript on riittävän älykäs päättelemään muuttujan tyypin sen arvon perusteella, vähentäen manuaalisen tyypityksen tarvetta.