javascript - TypeScript: SyntaxError: ข้อความ "โทเค็นที่ไม่คาดคิด" ในคอนโซล
ทำไมโค้ดนี้ถึงใช้ไม่ได้?
ฉันมีไฟล์ 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}`);
เมื่อฉันพยายามเรียกใช้มันด้วย
node app.ts
ฉันมีต่อไปนี้:
[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
แต่ฉันคาดว่า:
Before a = 1, b = 2
After a = 2, b = 1
TypeScript เวอร์ชัน 1.8.10
คำตอบ #1
คุณต้องคอมไพล์โค้ดของคุณก่อน
tsc app.ts
จากนั้นรันมันด้วย
node app.js
TypeScript เป็นภาษาที่ถูกแปลงโค้ด tsc ตัวคอมไพเลอร์ของ TypeScript จะแปลงซอร์สโค้ด TypeScript เป็น JavaScript Nodejs เป็นสภาพแวดล้อมของ JavaScript ที่ห่อหุ้มเครื่องเสมือน V8
คำตอบ #2
คุณกำลังรันโค้ดด้วย NodeJS คุณไม่ได้แปลงจาก TypeScript ไปเป็น JavaScript ดังนั้นคุณกำลังพยายามปฏิบัติต่อ TypeScript ของคุณราวกับว่ามันเป็น JavaScript
นั่นอาจจะโอเค เพราะ TypeScript เป็นซูเปอร์เซ็ตของ JavaScript ในกรณีนี้ โค้ดของคุณก็เป็น JavaScript ที่ถูกต้องเช่นกัน
การกำหนดค่าแบบทำลายที่คุณพยายามใช้นั้นเป็นฟีเจอร์ของ ES6 ซึ่งรองรับเฉพาะใน NodeJS ตั้งแต่เวอร์ชัน 6.5 เป็นต้นไป
คุณจำเป็นต้องอัปเกรด NodeJS เป็นเวอร์ชันที่ใหม่กว่า
อีกทางหนึ่ง ให้แปลง TypeScript เป็น ES5 ด้วย tsc app.ts
