Ero sivun ”TypeScript” versioiden välillä
Ei muokkausyhteenvetoa |
pEi muokkausyhteenvetoa |
||
| Rivi 19: | Rivi 19: | ||
| käyttöliittymä = Web-sovellukset, työpöytäsovellukset ([[Electron]]), mobiilisovellukset ([[React]] Native)) | | käyttöliittymä = Web-sovellukset, työpöytäsovellukset ([[Electron]]), mobiilisovellukset ([[React]] Native)) | ||
| tyyppi = Transpiloituva kieli | | tyyppi = Transpiloituva kieli | ||
| lisenssi = [[Apache | | lisenssi = [[Apache-lisenssi v2.0]] | ||
| kotisivu = [https://www.typescriptlang.org/ typescriptlang.org] | | kotisivu = [https://www.typescriptlang.org/ typescriptlang.org] | ||
| lähdekoodi = [https://github.com/microsoft/TypeScript github.com/microsoft/TypeScript] | | lähdekoodi = [https://github.com/microsoft/TypeScript github.com/microsoft/TypeScript] | ||
}} | }} | ||
'''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. | ||
Se 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 == | |||
Ero TypeScriptin ja JavaScriptin tyypityksen välillä on merkittävin virheiden havaitsemisessa jo kehitysvaiheessa (staattinen tyypitys) verrattuna virheiden havaitsemiseen vasta ohjelman suoritusvaiheessa (dynaaminen tyypitys). | |||
TypeScriptin tyypitys eroaa JavaScriptistä seuraavin tavoin: | |||
A. Tyypitys | |||
* JavaScript on dynaamisesti tyypitetty kieli, mikä tarkoittaa, että muuttujien tyyppi tarkistetaan vasta suorituksen aikana. | |||
* TypeScript on staattisesti tyypitetty kieli: Muuttujien, funktioiden parametrien ja paluuarvojen tyypit tarkistetaan käännösaikana (compile-time) ennen kuin koodi edes alkaa suorittua. | |||
* Varhainen virheen havainnointi: Jos yrität syöttää funktioon merkkijonon, kun se odottaa numeroa, TypeScriptin kääntäjä antaa virheilmoituksen heti kehitysvaiheessa. Tämä estää monia suoritusajan (runtime) virheitä. | |||
B. Valinnainen Tyyppimerkintä (Type Annotations) | |||
* Valinnainen: Vaikka TypeScript on staattisesti tyypitetty, tyyppimerkinnät (''a: number'', ''b: 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. | |||
Versio 23. marraskuuta 2025 kello 19.02
| 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.
Se 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
Ero TypeScriptin ja JavaScriptin tyypityksen välillä on merkittävin virheiden havaitsemisessa jo kehitysvaiheessa (staattinen tyypitys) verrattuna virheiden havaitsemiseen vasta ohjelman suoritusvaiheessa (dynaaminen tyypitys).
TypeScriptin tyypitys eroaa JavaScriptistä seuraavin tavoin:
A. Tyypitys
- JavaScript on dynaamisesti tyypitetty kieli, mikä tarkoittaa, että muuttujien tyyppi tarkistetaan vasta suorituksen aikana.
- TypeScript on staattisesti tyypitetty kieli: Muuttujien, funktioiden parametrien ja paluuarvojen tyypit tarkistetaan käännösaikana (compile-time) ennen kuin koodi edes alkaa suorittua.
- Varhainen virheen havainnointi: Jos yrität syöttää funktioon merkkijonon, kun se odottaa numeroa, TypeScriptin kääntäjä antaa virheilmoituksen heti kehitysvaiheessa. Tämä estää monia suoritusajan (runtime) virheitä.
B. Valinnainen Tyyppimerkintä (Type Annotations)
- Valinnainen: Vaikka TypeScript on staattisesti tyypitetty, tyyppimerkinnät (a: number, b: 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.