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.
