เป้าหมายใน tsconfig.json มีไว้เพื่ออะไร


93

อะไรtargetในtsconfig.jsonความหมาย?

{
  "compilerOptions": 
  {
    "sourceMap": true,
    "target": "es5",
    "module": "commonjs",
    "jsx": "react",
    "moduleResolution": "classic",
    "lib": [ "es2015", "dom",  "es2017" ]
  }
}

คำตอบ:


107

ฉันค่อนข้างใหม่กับ typescript Target ใน tsconfig.json หมายถึงอะไร

targetหมายซึ่งมีเป้าหมายของ JavaScript ควรจะปล่อยออกมาจาก typescript ตัวอย่าง:

target:es5

()=>nullจะกลายfunction(){return null}เป็น ES5 ไม่มีฟังก์ชันลูกศร

target:es6

()=>nullจะกลาย()=>nullเป็น ES6 มีฟังก์ชันลูกศร


5
ฉันยังต้องการ babel อยู่หรือไม่หากฉันกำหนดเป้าหมาย es5 ด้วยรหัส typescript ของฉันมี async และรออยู่ฉันจะคอมไพล์ได้หรือไม่ถ้าฉันให้เป้าหมายเป็น es5
Ankit Raonka

4
ไม่ต้องการบาเบลสำหรับสิ่งนั้น🌹
basarat

ผมใช้es5แต่มันตีความ destructuring [...arr].mapเป็นซึ่งแบ่งสำหรับอาร์เรย์เหมือนวัตถุที่ไม่ได้มีarr.slice().map sliceเมื่อฉันกำหนดเป้าหมาย es6 มันจะเริ่มทำงานในเบราว์เซอร์ของฉัน แต่จะใช้ได้กับทุกคนหรือไม่
Qwerty

@Qwerty ไม่มันจะไม่ ตัวอย่างเช่นจะไม่ทำงานใน Internet Explorer 11 เนื่องจากไม่รองรับ es6 และไม่มีฟังก์ชัน. map แม้ว่าคุณจะกำหนดเป้าหมาย es5 แต่ก็ยังไม่สามารถใช้งานได้ใน Internet Explorer เนื่องจากไม่ใช่หน้าที่ของผู้ขนส่งในการเพิ่มโพลีฟิลล์ คุณยังต้องเพิ่ม polyfill หากคุณต้องการรองรับเบราว์เซอร์ที่ไม่ใช่ es6
pabrams

@pabrams ดังนั้น IE11 จึงไม่รองรับ ES5 ทั้งหมด?
Qwerty

10

Target เปลี่ยนเวอร์ชัน JavaScript ที่คุณกำลังคอมไพล์

สามารถดูตัวเลือกได้ที่https://www.typescriptlang.org/docs/handbook/compiler-options.html

ด้วยความพยายามที่จะทำความเข้าใจให้ดีขึ้นว่าแฟล็กเป้าหมายเปลี่ยนรหัสของฉันอย่างไรฉันจึงรวบรวมโค้ดทดสอบบางส่วนกับแต่ละเวอร์ชันที่แตกต่างกันเพื่อให้เข้าใจถึงความแตกต่างได้ดีขึ้น

https://github.com/aizatto/typescript-playground/tree/master/dist/test-async-main

ฉันยังจดบันทึกสิ่งที่ฉันควรกำหนดเป้าหมายขึ้นอยู่กับสภาพแวดล้อมที่ฉันกำลังมองหา

https://www.aizatto.com/notes/typescript

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.