TypeScript: Interface vs Klass vs Moduler vs Program vs Funktion


Jag läste TypeScript-specifikationen som finns på: http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf

Men det förvirrade mig med följande:

  1. Gränssnitt
  2. Klass
  3. Moduler
  4. Program
  5. Funktioner.
  6. Declare vs. var

Kan någon kort hjälpa till att förstå vilken av ovanstående som bör användas när? Är Interface och Klass samma som C#-versionen?

Svar #1

Jag har gjort så att dessa svar matchar C# eftersom du nämnde det i din fråga, men förhoppningsvis är svaren användbara även för personer som kommer till TypeScript från liknande språk.

Gränssnitt

Ett gränssnitt i TypeScript är likt de du har stött på i C#. Det är ett kontrakt - om en av dina klasser implementerar ett gränssnitt lovar den att ha vissa egenskaper eller metoder som gränssnittet dokumenterar.

I TypeScript kan ett gränssnitt ärva från ett annat gränssnitt för att utöka det och från en klass för att fånga dess implementation.

När något verkar omöjligt i TypeScript kan du vanligtvis lösa det med ett interface!

I TypeScript har gränssnitt ett brett användningsområde. De beskriver en struktur och kan därför användas var som helst där du använder en typ (dvs. inte bara för att implementera dem i en klass, du kan använda dem för att typa variabler, parametrar, returvärden och så vidare).

Klass

Detta är mycket likt konceptet med en klass i C#. Du kan ärva från andra klasser för att utöka eller specialisera beteendet.

Namnområde

Det nyare nyckelordet namespace används för att placera en grupp kod inom ett begränsat område. Detta är liknande C#-namespace.

Modul

Moduler är bättre än namnrymder när det gäller TypeScript. En modul (tidigare känd som en extern modul) är en fil som är självständig och inte lägger till något i din globala omfång. Du kan ladda moduler i lokala variabler när du behöver dem. Moduler ger ett bra sätt att organisera din kod och ladda delar vid behov. När du använder moduler är det bäst att undvika att använda namnrymder. Moduler är bättre än namnrymder.

Program

Ett program är en samling av moduler, klasser. Detta är i huvudsak det du har skrivit med TypeScript.

Funktion/Metod

Klasser innehåller metoder, och du kan också skriva fristående funktioner som inte tillhör en klass.

Declare vs. var

var skapar en ny variabel. declare används för att tala om för TypeScript att variabeln har skapats någon annanstans. Om du använder declare, läggs ingenting till i den genererade JavaScript-koden - det är helt enkelt en ledtråd för kompilatorn.

Till exempel, om du använder ett externt skript som definierar var externalModule, skulle du använda declare var externalModule för att antyda för TypeScript-kompilatorn att externalModule redan har satts upp.

Relaterade artiklar