การใช้สัญลักษณ์ 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 ได้