Et ofte stilt spørsmål er: hva er den grunnleggende forskjellen mellom JavaScript og TypeScript?
La oss utforske dette nærmere.
Fra begynnelsen av din kodekarriere har JavaScript (JS) sannsynligvis vært en sentral del av dine frontend-prosjekter. Hvis du har en viss erfaring med JS, kan du se på TypeScript som JS forbedret med ekstra funksjonalitet som bidrar til å skape mer strukturerte og typesikre applikasjoner. TypeScript ble initiert som et åpen kildekode-prosjekt av Microsoft med mål om å øke effektiviteten i JS-utvikling og fange opp kompileringsfeil på et tidlig stadium.
I denne artikkelen vil vi analysere noen nøkkelfunksjoner i både JavaScript og TypeScript, og tydeliggjøre forskjellene mellom disse to skriptspråkene.
Hva er JavaScript?
JavaScript er et programmeringsspråk som ofte brukes til skripting på klientsiden. Du kan integrere skript direkte i HTML-sider eller opprette separate .js-filer som inkluderes i HTML-dokumentet. Et typisk eksempel på JavaScript i bruk er validering av innloggingsskjemaer, der du får en feilmelding hvis brukernavnet eller passordet er feil.
La oss se på en enkel JS-kode og hvordan den oppfører seg i en nettleser:
Opprett en fil med navnet example.html og legg til denne koden:
<script> feeling = 'happy'; feeling = 23; </script>
Denne enkle koden deklarerer en variabel og gir den først verdien «happy» (en streng). Deretter tilordner vi den en verdi av en annen type, nemlig tallet 23. JavaScript vil ikke klage over dette, og koden kan kjøres uten problemer i hvilken som helst nettleser. La oss nå hente følelsesverdien fra brukeren:
HTML-koden vår ser nå slik ut:
<input type = "textbox" id = "howyoufeel">
og selve skriptet blir:
feeling = document.getElementById("howyoufeel").value;
Uten spesifikke kontroller i skriptet, vil JS akseptere alle verdier brukeren angir og overføre dem videre. Dette betyr at brukeren kan legge inn hva som helst som 234, @.#$% osv. i variabelen «feeling».
Funksjoner i JavaScript
Basert på eksemplene over kan vi identifisere følgende funksjoner i JavaScript:
- Svakt typet skriptspråk
- Brukes til skripting på både klientsiden og serversiden (med Node.js)
- Fleksibelt og dynamisk
- Støttes av alle ledende nettlesere
- Lett og tolket
Dersom du er interessert i å bli dyktig i JavaScript, kan du sjekke ut dette Udemy-kurset.
Hva er TypeScript?
En typisk applikasjon vil ha behov for mange valideringer og dynamiske sjekker. For slike applikasjoner kan JavaScript-kode bli vanskelig å teste etterhvert, hovedsakelig på grunn av manglende typekontroll. Når du henter data fra brukere, er det viktig å sikre at dataene er korrekte fra starten. Det er her TypeScript kommer inn.
TypeScript er sterkt typet og har en kompilator som signaliserer feil hvis du ikke spesifiserer datatypen til en variabel.
Både JavaScript og TypeScript følger ECMAScript-spesifikasjonene for skriptspråk. TypeScript kan kjøre all JavaScript-kode og støtter alle JS-biblioteker – derfor blir det ansett som en «superset» av JavaScript.
TypeScript installasjon
For å kjøre vår tidligere kode i TypeScript, må vi installere TypeScript-kompilatoren via npm (hvis du har Node.js).
npm install -g typescript
Alternativt kan den lastes ned direkte fra den offisielle Microsoft nedlastingsside. Du kan også benytte TS-lekeplassen for å se hvordan kode transkompileres fra TS til JS.
Etter installasjon kan du konfigurere prosjektinnstillingene i tsconfig.json og bruke en IDE eller tekstredigerer for å skrive TypeScript-kode og lagre den som .ts-filer.
Du kan fortsatt unngå å definere variabeltypen, og TypeScript vil kunne utlede datatypen selv. Du vil imidlertid få en feilmelding i forbindelse med «feeling»-variabelen dersom du prøver å gi den en annen type enn den som først ble brukt (i dette tilfellet en streng) – dette skjer under kompileringen.
Det er alltid god praksis å spesifisere typekommentarer for vedlikehold og lesbarhet:
var feeling: string = “happy”;
Det er ikke alt!
TypeScript tilbyr mange flere funksjoner som gjør utvikleres hverdag enklere.
Funksjoner i TypeScript
TypeScript har et rikt utvalg av funksjoner, og hver nye versjon introduserer flere forbedringer som gjør utviklingen smidigere enn før. For eksempel, med den nyeste utgivelsen (4.0), har de lagt til noen ekstra funksjoner som variadiske tuppeltyper, tilpassede JSX-fabrikker og slutninger av klasseegenskaper fra konstruktører. Noen typiske kjennetegn ved TypeScript inkluderer:
- Støtter objektorienterte programmeringskonsepter som grensesnitt, arv, klasser og generiske typer
- Tidlig feildeteksjon
- IDE-støtte med syntakssjekk og forslag
- Enklere å feilsøke underveis
- Transkompileres til JavaScript
- Kan brukes for både server-side og klient-side applikasjoner
- Støtter tvers av plattformer og nettlesere
- Støtter alle JS-biblioteker og -utvidelser
Hvorfor trenger vi TypeScript? (Fordeler med TypeScript fremfor JavaScript)
Microsoft utviklet og brukte TypeScript i to år i sine interne prosjekter før det ble offentliggjort i 2012. De skapte et typet JavaScript fordi det var lettere å teste kode for forretningsapplikasjoner i produksjonsmiljøer. Du kan fortsatt benytte dynamisk typing, men også skrive inn variablene når det er nødvendig.
Se på koden under:
var mynum = //hentes fra bruker; addten(number){ return number + 10; }
Vi forventer at resultatet alltid skal være et tall. Men hva om en bruker oppgir «sau»? Utgangen vil bli «sau10» – i dette tilfellet bør vi informere brukeren om at den operasjonen ikke er mulig!
Når du har tilgang til typeinformasjon, blir det enklere å bruke tekstredigerere og IDE-er, og det forhindrer feil under kjøring. Det er også lettere å refaktorere kode på et senere tidspunkt.
Betyr dette at vi ikke trenger JavaScript? (Ulemper med TypeScript fremfor JavaScript)
Det er bedre å tenke på TypeScript som en utvidelse av JavaScript, ikke som en erstatning.
For mindre kodebiter kan TypeScript være overkill – installasjon, kompilering og transkompilering kan virke unødvendig. Med JavaScript kan du ganske enkelt skrive skriptet direkte i HTML-koden, og det vil fungere. Det er også enklere å feilsøke koden siden du bare kan oppdatere nettleseren hver gang du endrer noe.
Direkte sammenligning
Nå som vi har sett på egenskapene og fordelene med både TypeScript og JavaScript, la oss gjennomgå en direkte sammenligning:
TypeScript | JavaScript |
Et sterkt typet språk som fanger opp kompileringsfeil på et tidlig stadium | Feil oppdages under kjøring |
Egnet for store prosjekter da det forbedrer kodevedlikehold og lesbarhet | Ettersom mer kode legges til, blir det vanskelig å teste og feilsøke. JS er derfor bedre egnet for små prosjekter |
Et «superset» av JS, med funksjoner som objektorientering, typekontroll med mer | Et skriptspråk som brukes til å skape dynamisk webinnhold |
Krever installasjon av kompilator og oppsett | Ingen installasjon nødvendig; JS-kode kan skrives direkte i nettleseren med en <script>-tag |
Alle .ts-filer konverteres til .js-filer før kjøring – kjent som transkompilering | Utviklere kan inkludere .js-filer direkte i HTML-filer ved hjelp av <src>-taggen |
Kraftig og intuitivt med funksjoner som moduler, generiske typer og grensesnitt | Passer godt for enkle nettapplikasjoner som ikke trenger avanserte funksjoner |
Brukes for både server-side og klient-side skripting | Enkelt å bruke for skripting på klientsiden, men kan bli tungt og komplekst for serverside-skripting |
Tar lengre tid å kjøre på grunn av kompileringstrinnet | Ingen kompilering nødvendig – raskere utførelse |
Støtter både statisk og dynamisk skriving | Støtter kun dynamisk skriving |
Vi kan spesifisere typekommentarer som: var følelse: string = «glad»; |
Typekommentarer kan ikke spesifiseres siden vi ikke kan definere datatyper |
Konklusjon
Fra et læringsperspektiv kan JavaScript være det beste valget. Du kan opprette en fil, skrive kode mellom <script></script>-taggene, lagre den som HTML – og se resultatet! Etter det kan du bygge videre på det for å skape mer dynamisk innhold.
Når du jobber med store prosjekter, vil JavaScript-kunnskap hjelpe deg med å bytte til TypeScript lettere.
Men fra et karriere- og lønnsperspektiv, vil du som en TypeScript-utvikler være mer fleksibel og komfortabel med både JS- og TS-prosjekter – noe som gjør deg mer attraktiv på arbeidsmarkedet. Typisk tjener TypeScript-utviklere mellom $110 000 og $147 000 per år, mens JS-utviklere tjener rundt $63 000 til $118 000 per år.