javascript - TypeScript: SyntaxError: "Uventet token" melding i konsollen
Hvorfor fungerer ikke denne koden?
Jeg har følgende app.ts
var a = 1;
var b = 3;
console.log(`Before a = ${a}, b = ${b}`);
[a, b] = [b, a];
console.log(`After a = ${a}, b = ${b}`);
når jeg prøver å kjøre det med
node app.ts
Jeg har det neste:
[a, b] = [b, a];
^
ReferenceError: Invalid left-hand side in assignment
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:974:3
Men jeg forventer:
Before a = 1, b = 2
After a = 2, b = 1
TypeScript-versjon 1.8.10
Svar #1
Du må kompilere koden din først.
tsc app.ts
Kjør det deretter med
node app.js
TypeScript er et transpilerspråk. tsc, TypeScript-kompilatoren, transpilerer TypeScript-koden til JavaScript. Nodejs er et JavaScript-miljø som omslutter V8-virtuelle maskinen.
Svar #2
Du kjører koden med NodeJS. Du transpilerer den ikke fra TypeScript til JavaScript, så du prøver å behandle TypeScripten din som om det var JavaScript.
Det kan være greit, siden TypeScript er en overmengde av JavaScript. I dette tilfellet skjer det også at koden din er gyldig JS.
Destruktureringsoppgavene du prøver å bruke er en ES6-funksjon som kun støttes i NodeJS fra versjon 6.5 og nyere.
Du må oppgradere NodeJS til en nyere versjon.
Alternativt, transpiler TypeScript til ES5 med tsc app.ts
