Ero sivun ”TypeScript” versioiden välillä

Siirry navigaatioon Siirry hakuun
tekstin muotoilua
Rivi 42: Rivi 42:
* Valinnainen Tyyppimerkintä: Vaikka TypeScript on staattisesti tyypitetty, tyyppimerkinnät ('': number'', '': string'' jne.) ovat usein valinnaisia.
* 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.
* 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.
4. Rakenteellinen Tyypitys (Structural Typing)
* TypeScript käyttää rakenteellista tyypitystä (tunnetaan myös "duck typingina"), ei nimityypitystä. Tämä tarkoittaa, että tyyppien yhteensopivuus perustuu niiden rakenteeseen (eli niissä oleviin ominaisuuksiin ja metodeihin), ei niiden nimeen.
* Sääntö: Jos tyypillä on sama rakenne kuin toisella tyypillä (eli sillä on kaikki samat pakolliset ominaisuudet), se on yhteensopiva sen kanssa.
* Esimerkki: Jos sinulla on kaksi eri rajapintaa (interface), ''Henkilö'' ja ''Käyttäjä'', mutta molemmilla on vain ominaisuus nimi: ''string'', TypeScript pitää niitä yhteensopivina.
<syntaxhighlight lang="TypeScript">
interface Henkilo {
    nimi: string;
}
interface Kayttaja {
    nimi: string;
}
// 🤝 TS sallii tämän, koska rakenteet ovat samat:
const a: Henkilo = { nimi: "Aada" };
const b: Kayttaja = a; // OK! Vaikka tyyppien nimet ovat eri.
</syntaxhighlight>
Rakenteellinen tyypitys tekee TypeScriptin koodista joustavampaa ja tukee paremmin JavaScriptin luontaista, löysempää tapaa käyttää objekteja.
Noudettu kohteesta ”https://www.linux.fi/wiki/TypeScript