ecmascript 6 - Forholdet mellom TypeScript og ES6


Alle :

Jeg er ganske ny på Typescript og ES6, det første som forvirrer meg er forholdet deres, fra MSDN:

TypeScript 1.5 legger til en rekke nye ES6-funksjoner inkludert moduler, destructuring, spread, for..of, symboler, beregnede egenskaper, let/const og taggede strengmaler.

Min forvirring er (jeg vet at det er mange innlegg som sier at Typescript er en superset av JS):

Betyr dette at TypeScript bare bruker sin egen måte (noen litt forskjellige syntakser og transpiler) for å gjenskape det som allerede finnes i ES6 igjen (bare for typeformål),

og

Bety betyr det at ES6 i utgangspunktet kan gjøre alt som TypeScript kan? Og omvendt

Svar #1

TypeScript er en skriptkode som transpileres til JavaScript - enten til ES5 eller ES6 (og også ES3).

TypeScript 1.5 legger til en rekke nye ES6-funksjoner, inkludert moduler, destrukturering, spread, for..of, symboler, beregnede egenskaper, let/const og merkemerkede strengmaler.

Dette betyr at du kan bruke moduler, for..of og andre funksjoner i TypeScript-koden din, og TypeScript-kompilatoren oversetter koden din til ESx-kompatibel kode som gjør det samme. La oss ta for..of for eksempel:

TypeScript-kode:

for (let t of [1,2,3]) {
    console.log(t)
} 

blir transpileret til ES5 på denne måten:

for (var _i = 0, _a = [1, 2, 3]; _i < _a.length; _i++) {
    var t = _a[_i];
    console.log(t);
}

Men hvis du retter deg mot ES6, er transpileringen enkelt sagt:

for (let t of [1,2,3]) {
    console.log(t);
}

Det samme gjelder for moduler, spread, osv. I hvert tilfelle genererer TypeScript kode som oppfører seg likt i ES5, ES6 og ES6 (det er forenklet fordi det ikke alltid er mulig).

Det er ingen forskjell i uttrykksevne mellom TypeScript og ES6. Forskjellen er at TypeScript-kompilatoren hjelper deg med statisk analyse av koden din. Ellers, hva enn du kan programmere i ES6, kan du programmere i TypeScript og omvendt.

Svar #2

Typescript er en kompilator som lager ecmascript. Typescript-kilden er kode som har støtte for typer, grensesnitt, super-/underklasser og det du ellers kjenner fra andre programmeringsspråk. Som nevnt, er resultatet ecmascript, som kjører i hvilken som helst nettleser.

Relaterte artikler