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

การใช้สัญลักษณ์ ES-6 ใน TypeScript


ฉันพยายามที่จะใช้สัญลักษณ์ในโค้ด TypeScript ของฉัน (โดยใช้ es-5 เป็นเป้าหมาย) อย่างไรก็ตาม โค้ดต่อไปนี้ให้ข้อผิดพลาด TS2304: ไม่พบชื่อ 'Symbol'

var sym = Symbol();

ตามแผนงาน สัญลักษณ์ได้รับการสนับสนุนตั้งแต่เวอร์ชัน 1.5 แต่ฉันเดาว่าสิ่งหนึ่งคือการสนับสนุนสัญลักษณ์และอีกสิ่งหนึ่งคือการแปลงสัญลักษณ์ไปเป็น es-5

วิธีที่ดีที่สุดในการทำให้สัญลักษณ์ทำงานในโค้ดที่แปลงมาจาก ES-5 ของฉันคืออะไร?

คำตอบ #1

โดยค่าเริ่มต้น TypeScript จะไม่เสนอ poly-fills สำหรับการเปลี่ยนแปลงในอนาคตของไลบรารีมาตรฐานเมื่อคอมไพล์ไปยังเวอร์ชันเก่า มันเสนอเฉพาะการเปลี่ยนแปลงทางไวยากรณ์เท่านั้น

นั่นหมายความว่า Symbol ไม่สามารถใช้งานได้เมื่อคอมไพล์เป็น ES5 แต่สามารถใช้งานได้เมื่อคอมไพล์เป็น ES6

ถ้าคุณต้องการใช้การเปลี่ยนแปลงไลบรารีมาตรฐาน ES6 เมื่อคอมไพล์ไปยังเวอร์ชัน ES ที่เก่ากว่า คุณสามารถใช้ core.js เพื่อรับ polyfills ได้

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