TypeScript är ett programmeringsspråk med öppen källkod som skapats den 1 oktober 2012 och upprätthålls av Microsoft. TypeScript bygger på JavaScript och lägger till flera avancerade funktioner som exempelvis statisk typkontroll, vilket innebär att typen (t.ex. heltal, sträng, objekt etc.) av variabler och parametrar definieras vid kompileringstiden i stället för vid körningstiden. På så sätt kan potentiella fel i koden identifieras och åtgärdas tidigt i utvecklingsprocessen, före programmet faktiskt körs. Det ökar säkerheten i koden och gör det enklare att hålla reda på och felsöka den. TypeScript tillämpar statisk typkontroll på detta sätt, medan JavaScript är ett dynamiskt typat språk.

TypeScript
Programspråk Redigera Wikidata
Programmeringsspråk, skriptspråk, imperativt programmeringsspråk, functional programming language, event-driven programming language, strict programming language, högnivåspråk, FOSS Redigera Wikidata
Tillkomst1 oktober 2012 Redigera Wikidata
SkapareAnders Hejlsberg Redigera Wikidata
Influerad avJavascript, C-sharp, Java, CoffeeScript Redigera Wikidata
Prog­ram­me­rings­pa­ra­digmfunktionell programmering, Generisk programmering, imperativ programmering, objektorienterad programmering, event-driven programming Redigera Wikidata
Utveck­la­reMicrosoft Redigera Wikidata
DesignerMicrosoft Redigera Wikidata
Prog­ram­me­rings­sp­råkJavascript, TypeScript Redigera Wikidata
Software quality assurancekontinuerlig integration Redigera Wikidata
Version för prog­ram­va­ra5.6.3 Redigera Wikidata
Officiell webbplatswww.typescriptlang.org Redigera Wikidata
LicensApache 2.0 Redigera Wikidata
Typing dis­cip­li­neDuck typing, gradual typing, structural typing Redigera Wikidata
Dialect of computer languageJavascript Redigera Wikidata
ACM Clas­si­fi­ca­tion Code (2012)10011490 Redigera Wikidata
Fil­än­del­sets, tsx Redigera Wikidata

Huvudsyftet med TypeScript är att förbättra utvecklarens produktivitet och säkerhet genom ett effektivare sätt att koda och enklare felsökning jämfört med vanlig Javascript, som inte har alla dessa funktioner.

TypeScript kompilerar sedan koden till Javascript i ett kortfattat och effektivt format, vilket innebär att koden kan köras på alla plattformar som stöder JavaScript.[1]

En TypeScript-fil har vanligtvis filavslutningen .ts eller .tsx för JSX.

Genom utvecklingsmiljöerna Node.js och Deno så kan man utveckla, kompilera och köra TypeScript-kod. För Node.js kan man installera TypeScript med mjukvaran npm, pnpm eller Yarn och man definierar sina kompilationsinställningar i en tsconfig.json-fil, men för Deno finns det förinstallerat.[2][3][4]

Typannotationer

redigera

TypeScript tillåter statisk typning genom typannotationer vilket möjliggör för typcheckning både innan och efter koden utförs.

function addera(a: number, b: number): number {
    return a + b    
}

I den första funktionen kan man se att den tar nummer a och nummer b som parametrar. Genom kolonet och typen number så kan vi klargöra att båda är av typen nummer. Man kan också se att själva funktionen returnerar ett nummer genom frasen : number på sidan av den. Ifall man överträder dessa typer får man till exempel felmeddelandet Type 'number' is not assigned to type 'string'.

let x: [string, number]

x = [10, "hello"];

Exempel på hur TypeScript kan hitta fel innan koden körs.

[5]

Deklarationsfiler

redigera

När TypeScript-kod kompileras finns det ett val att generera en deklarationsfil med filtillägget .d.ts. som fungerar som ett gränssnitt för komponenterna av den kompilerade JavaScript-koden. I deklarationsfilerna tar kompilatorn bara ut typerna, ingen kod. Detta skapar en renare och mer koncentrerad representation av de olika typerna istället för att ha dem utspridda över flera filer.

declare namespace aritmetik {
    addera(left: number, right: number): number;
    subtahera(left: number, right: number): number;
    multiplicera(left: number, right: number): number;
    dividera(left: number, right: number): number;
}

tsconfig.json

redigera

tsconfig.json är en reserverad fil som används vid kodning i TypeScript. Den använder filtypen JSON och specificerar hur TypeScripts kompilator ska kompilera TypeScript-koden. Här kan man specificera hur olika delar av typsystemet ska fungera och hur felkoder ska hanteras. [6]

{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "outDir": "lib",
    "sourceMap": true,
    "strict": true,
    "target": "es2017",
    "esModuleInterop": true,
    "types": []
  },
  "compileOnSave": true,
  "include": [
    "src"
  ],
  "exclude": [
    "node_modules"
  ],
}

Referenser

redigera
Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, tidigare version.
  1. ^ ”Typed JavaScript at Any Scale.” (på engelska). www.typescriptlang.org. https://www.typescriptlang.org/. Läst 20 februari 2021. 
  2. ^ Node.js. ”Node.js” (på engelska). Node.js. https://nodejs.org/en/. Läst 20 februari 2021. 
  3. ^ ”Deno - A secure runtime for JavaScript and TypeScript”. deno.land. https://deno.land/. Läst 20 februari 2021. 
  4. ^ ”TypeScripts nedladdningssida”. TypeScript. https://www.typescriptlang.org/download. Läst 7 april 2022. 
  5. ^ ”Handbook - Basic Types” (på engelska). www.typescriptlang.org. https://www.typescriptlang.org/docs/handbook/basic-types.html. Läst 20 februari 2021. 
  6. ^ ”Documentation - What is a tsconfig.json” (på engelska). www.typescriptlang.org. https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. Läst 20 februari 2021.