ค้นหาเว็บไซต์

ecmascript 6 - TypeScript เป็นซูเปอร์เซตของ ES6 หรือไม่?


ในอีกคำพูดหนึ่ง ไวยากรณ์ ES6 ทั้งหมดครอบคลุมโดย TypeScript หรือไม่?

คำถามของฉันแตกต่างจากนี้อย่างไร:

  • "TypeScript จริง ๆ เป็นซูเปอร์เซ็ตของ JavaScript หรือไม่?"
    ES6 ไม่ใช่ (หรือยังไม่ได้ถูกพิจารณา ถ้าคุณอ่านสิ่งนี้ในอนาคต) เป็นเวอร์ชันปัจจุบันของ Javascript
  • TypeScript แตกต่างจาก ES6 หรือไม่?
    มันต่างกัน, ผมรู้อยู่แล้ว นั่นไม่ใช่สิ่งที่ผมถาม

คำตอบ #1

อิงตามสเปคภาษาปัจจุบันที่มีอยู่บนเว็บไซต์:

TypeScript เป็นน้ำตาลสังเคราะห์สำหรับ JavaScript ไวยากรณ์ของ TypeScript เป็นชุดย่อยของไวยากรณ์ Ecmascript 5 (ES5)

และ :

ไวยากรณ์ของ TypeScript รวมถึงฟีเจอร์หลายอย่างที่เสนอของ Ecmascript 6 (ES6) รวมถึงคลาสและโมดูล

คำตอบ #2

TypeScript 1.5 (กุมภาพันธ์ 2015) เป็นเวอร์ชันสุดท้ายที่ไม่ได้อ้างว่ามีความเป็น superset ของ ES6:

ไวยากรณ์ของ TypeScript เป็นชุดย่อยของไวยากรณ์ Ecmascript 5 (ES5)

ตั้งแต่ TypeScript 1.6 (สิงหาคม 2015):

ไวยากรณ์ของ TypeScript เป็นชุดย่อยของไวยากรณ์ ECMAScript 6 (ES6)

ข้อความถูกเปลี่ยนใน TypeScript 1.8 (มกราคม 2016) แต่ความหมายยังคงเหมือนเดิม:

ไวยากรณ์ของ TypeScript เป็นส่วนขยายของไวยากรณ์ ECMAScript 2015 (ES2015)

ดังนั้น ใช่: ตามสเปก TypeScript เป็นซูเปอร์เซ็ตของ ES6

บทความที่เกี่ยวข้อง