แรงจูงใจเบื้องหลัง TypeScript คืออะไร


21

เรามี JavaScript จากนั้นเราก็มี Flash จากนั้นเรามี Silverlight และ HTML5 เป็นเจ้าของทั้งหมด

แล้วอะไรคือแรงจูงใจเบื้องหลังของ TypeScript? ปัญหาอะไรที่จะได้รับการแก้ไขและการปรับปรุงอะไรที่เราจะได้รับจาก TypeScript?

http://www.typescriptlang.org/


15
ทำไมคุณถึงคิดว่า JavaScript5 "ownd" JavaScript
Bergi

1
ในแง่ที่ว่าทุกคนต้องเห็นด้วยกับบางสิ่งเพื่อค้นหาจุดร่วม => เทคโนโลยีและการพัฒนาจนตรอก
Gero

3
ทำไมคุณถึงพูดถึง Dart
Robert Harvey

Dart, TypeScript หรือ Coffeescript สามารถรวบรวมไปยัง JavaScript และ Dart ก็ค่อนข้างใหม่เช่นกัน
Gero

ได้ดูบทความนี้ "ความคิดเกี่ยวกับ typescript" โดยนิโคลัสซี Zakas A: nczonline.net/blog/2012/10/04/thoughts-on-typescript
Czarek Tomczak

คำตอบ:


35

ดูเหมือนว่าฉันจะเป็นภาษาที่ใช้แบบคลาสคงที่ที่คอมไพล์ลงใน JavaScript เป็นความคิดที่ดีและเป็นสิ่งที่คนอื่นมีเช่นกัน

ข้อดีควรชัดเจนสำหรับผู้ที่พัฒนาทั้งภาษาที่พิมพ์แบบคงที่คลาสที่ใช้และใน JavaScript:

  • ก่อนอื่นคอมไพเลอร์ ความสามารถในการตรวจสอบปัญหาความถูกต้องชัดเจนที่เกิดจากความผิดพลาดหรือความประมาทก่อนการปรับใช้เป็นสิ่งที่นักพัฒนาส่วนใหญ่ใช้เพื่อให้ได้รับจนกว่าพวกเขาจะต้องทำการพัฒนาเว็บและจากนั้นมันก็ถูกดึงออกมา เบราว์เซอร์ได้รับการออกแบบมาเพื่อให้ประสบการณ์การท่องเว็บที่น่าพึงพอใจด้วยค่าใช้จ่ายในการทดสอบและแก้ไขจุดบกพร่องที่เหมาะสมและโซลูชันมาตรฐานคือ JSLint ไม่สามารถใช้แทนคอมไพเลอร์ตัวจริงได้เนื่องจากมันพลาดปัญหาความถูกต้อง ด้วยรายงาน การมีคอมไพเลอร์ตัวจริงเป็นขั้นตอนที่ยิ่งใหญ่
  • และตามเส้นที่คล้ายกันระบบประเภท ระบบพิมพ์ปรับปรุงโค้ดของคุณโดยทำให้อ่านง่ายขึ้น (คุณรู้แน่ชัดว่ามีอะไรถูกส่งผ่านไปยังฟังก์ชันและสิ่งที่ทำได้เพียงดูที่รายการพารามิเตอร์ตัวอย่าง) และโดยการบังคับใช้ระดับความถูกต้องที่รวบรวม เวลา. (หากคุณคาดว่าจะเป็นประเภทวัตถุเฉพาะการส่งจำนวนเต็มเป็นข้อผิดพลาด JavaScript จะช่วยให้คุณทำเช่นนั้นแล้วจะระเบิดขึ้นเมื่อคุณพยายามเรียกใช้คอมไพเลอร์ที่มีระบบประเภทจะตรวจจับและรายงานข้อผิดพลาดสำหรับ คุณ.)

ดังนั้นตามที่เราเห็นความคิดพื้นฐานนั้นดีมาก ต้องบอกว่าฉันไม่สามารถพูดอะไรเกี่ยวกับภาษาของตัวเองเพราะฉันไม่มีประสบการณ์กับมัน แต่ฉันใช้ Smart (เชื่อมโยงกับด้านบน) และพบว่าเป็นเครื่องมือที่มีประสิทธิภาพและมีประโยชน์อย่างเหลือเชื่อสำหรับการพัฒนาเว็บ


7
มันเป็นเหมือนชุดของ JavaScript มากกว่าภาษาใหม่ที่คอมไพล์ลงไป
Daniel Little

2
ใช่การพิมพ์อย่างง่ายช่วยให้โปรแกรมเมอร์ง่ายขึ้น
Edwin Yip

13
TypeScript ถูกพิมพ์แบบคงที่ไม่ได้พิมพ์อย่างยิ่ง
เฟนตัน

15

มีเหตุผลที่ดีบางประการในการใช้ TypeScript เท่าที่ฉันเห็น แรกและสำคัญที่สุดเป็นเมสันวีลเลอร์กล่าวว่าคอมไพเลอร์ หรือเป็นการตรวจสอบคอมไพเลอร์ทั้งหมด JSLint และเครื่องมืออื่น ๆ มีประโยชน์ แต่พลาดปัญหาบางอย่างและบางครั้งก็ผิดปกติ ฉันขอต้อนรับ "นวัตกรรม" นี้อย่างแน่นอน

จากนั้นมีระบบการพิมพ์จริงปรับปรุงการอ่านและบังคับใช้ประเภทที่ถูกต้อง หลังจากทั้งหมดนี้เพิ่มความเร็วในการพัฒนา

สำหรับผมซึ่งเป็นหนึ่งในสิ่งที่ดีคือการสนับสนุนเครื่องมือ นั่นอาจเป็นผลข้างเคียงของระบบพิมพ์ แต่ก็ดีมาก และจำเป็นจริงๆเนื่องจากการสนับสนุนเครื่องมือการใช้งาน JavaScript ในปัจจุบันนั้นมีประโยชน์มากกว่า

typescript พยายามที่จะขยาย JavaScript คอมไพเลอร์สร้าง JavaScript ที่ดีจริงๆ และนอกจากนี้ก็เป็นไปตามECMAScript 6 ข้อเสนอ (ตัวอย่างเช่นไวยากรณ์ของฟังก์ชันลูกศร , ค่าเริ่มต้นของพารามิเตอร์ , โมดูลและอื่น ๆ

มันทำให้การทำงานกับโมดูลและคลาสง่ายขึ้น จริงๆแล้วมันเป็นไปได้และเป็นเรื่องธรรมดามากที่จะทำงานกับคลาสและโมดูลใน JavaScript แต่ต้องใช้โค้ดสำเร็จรูปจำนวนหนึ่ง และไม่ใช่เรื่องง่ายที่จะอ่าน TypeScript อนุญาตให้เขียนคำสั่งคลาส - อินเทอร์เฟซและโมดูลเหมือนใน Java หรือ C # ซึ่งง่ายกว่ามากถ้าคุณถามฉัน

แต่หลังจากที่ทั้งหมดจะยังคงเป็นเพียง JavaScript ไม่จำเป็นต้องเรียนรู้ภาษาใหม่หรือไวยากรณ์ สิ่งเดียวที่เพิ่มคือระบบประเภทที่เป็นตัวเลือก (ซึ่งยอดเยี่ยมและเกินกำหนด)

จากนั้นมี"ห้องสมุดคำจำกัดความ"ซึ่งหมายความว่าฉันสามารถใช้ libs JavaScript ของฉันทั้งหมดโดยไม่ต้องเขียนใหม่หรือแม้กระทั่งการแก้ไขพวกเขา อย่างไรก็ตามฉันมีระบบประเภทเพิ่มเติมตอนนี้

แน่นอนฉันจะลองดู!

สิ่งสุดท้ายสิ่งหนึ่งไม่มีการแข่งขันระหว่าง HTML5 และ TypeScript แต่นั่นเป็นอีกเรื่อง


5

เรามี JavaScript จากนั้นเราก็มี Flash จากนั้นเรามี Silverlight และ HTML5 เป็นเจ้าของทั้งหมด

นี่ไม่เป็นความจริงเลย Html5 ไม่ได้เป็นเจ้าของมันแนะนำมาร์กอัปใหม่ที่ทำให้การใช้งานมัลติมีเดียง่ายขึ้นและสำรวจข้อดีของเบราว์เซอร์ยุคใหม่ (เช่นการใช้การเร่งความเร็วฮาร์ดแวร์ขณะแสดง HTML)

แล้วอะไรคือแรงจูงใจเบื้องหลังของ TypeScript?

แรงจูงใจอาจเกิดจากเหตุผลในการใช้งาน คุณสมบัติทั้งหมดของ TypeScript เช่น: การตรวจสอบแบบคงที่การนำทางด้วยสัญลักษณ์การเติมคำสั่งและการสร้างรหัสใหม่นั้นเป็นเหตุผลที่ดีมากในการพิจารณา

นอกจากนี้ยังมีคลาสโมดูลและอินเทอร์เฟซเพื่อช่วยคุณสร้างส่วนประกอบที่แข็งแกร่ง คุณลักษณะเหล่านี้พร้อมใช้งานในขณะพัฒนาเพื่อการพัฒนาแอปพลิเคชันที่มีความมั่นใจสูง แต่ได้รับการรวบรวมเป็น JavaScript อย่างง่าย


HTML 5 ไม่ใช่ข้อกำหนดล่วงหน้าสำหรับการเร่งความเร็วของฮาร์ดแวร์ เบราว์เซอร์ส่วนใหญ่ทำเช่นนี้โดยมีหรือไม่มีมาร์กอัป HTML5
Neil N

คำสั่งของฉันบ่งชี้ว่าการเร่งความเร็วด้วยฮาร์ดแวร์เป็นคุณสมบัติที่เบราว์เซอร์ไม่รองรับ
EL Yusubov

3

มันอาจถูกใช้เป็นเครื่องมือในการจัดการการพัฒนาจาวาสคริปต์แทนที่จะเป็นภาษาใหม่ทั้งหมดที่คอมไพล์กับ JS ไม่ต้องการเป็นภาษาพัฒนาฝั่งเซิร์ฟเวอร์เช่น Dart และไม่มีไวยากรณ์ที่แตกต่างเช่น CoffeeScript ไม่ต้องการใช้ภาษายอดนิยม (และเป็นห้องสมุดหลัก) และรวบรวมเป็น JS เช่น GWT หรือ script # TypeScript ยังทำตามไวยากรณ์ "คลาส" เดียวกันที่เสนอสำหรับ JS เวอร์ชันถัดไป

ฉันคิดว่าการพัฒนาเว็บส่วนใหญ่เสร็จแล้ววันนี้ใช้จาวาสคริปต์จริงในฝั่งไคลเอ็นต์เท่านั้น ภาษาหรือกรอบเช่น Dart, GWT ไม่เหมาะสำหรับสิ่งนี้ หากคุณไปที่ coffeescript จะมีซินแท็กซ์ใหม่เกิดขึ้น และคุณต้องเข้าใจทั้งกาแฟและ JS ในขณะที่ TypeScript เพิ่งเพิ่มฟีเจอร์ที่มุ่งเน้นประเภทพิเศษสองสามอย่างหลอมรวมเข้ากับ JS ซึ่งบันทึกนักพัฒนาจากข้อผิดพลาดเฉพาะประเภท (ซึ่งเป็นส่วนใหญ่ของข้อผิดพลาด JS) และให้เครื่องมือในการพัฒนาข้อมูลเพิ่มเติม

วิธีการนี้ไม่ใช่เรื่องใหม่ ไปที่ส่วน "การพิมพ์แบบคงที่" ของ

บทความนี้เน้นที่การสืบค้นของคุณ - http://www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/


0

ฉันคิดว่ามันเป็นความพยายามที่จะแปลงเศษอึ (จาวาสคริปต์) ที่ใช้ร่วมกันและไม่น่าเชื่อถือให้เป็นภาษาที่มีกรรมสิทธิ์ซึ่งสามารถนำไปใช้กับโครงการที่สำคัญได้

มันควรจะเปรียบเทียบกับ GWT ซึ่งมีชุดของเป้าหมายที่คล้ายกัน แต่ใช้แนวทางที่สะอาดกว่าโดยการทำให้จาวาสคริปต์ไม่ใช่ส่วนหนึ่งของภาษา และด้วย Java applets หรือ Flash ซึ่งใช้วิธีการที่สะอาดในการกำหนดสภาพแวดล้อมรันไทม์ที่สมบูรณ์โดยไม่ขึ้นกับเบราว์เซอร์

ความคิดเห็นของคุณอาจแตกต่างกันไป แต่ฉันคิดว่ามันถึงวาระตราบใดที่มันขึ้นอยู่กับเบราว์เซอร์ที่มีการใช้งานจาวาสคริปต์และรุ่น DOM ที่แตกต่างกัน


5
ประการแรกมันไม่ใช่กรรมสิทธิ์มันเป็นมาตรฐานเปิดอยู่แล้ว ประการที่สองมันเป็นเหมือน Dart มากกว่า GWT / ScriptSharp (แม้ว่าจะคล้ายกัน)
Daniel Little

1
อาจไม่มีทางชนะในเรื่องนี้ - ถ้า Microsoft ไม่สามารถควบคุมมันได้มันจะกลายเป็นภาษาที่มีการเปลี่ยนแปลงมากมายและยังขึ้นอยู่กับจาวาสคริปต์และ
DOM ที่เปลี่ยนไป

1
คุณฟังดูเหมือนใครบางคนที่อาจจะขมขื่นกับทักษะ Flash และ / หรือ Java ของพวกเขาซึ่งไม่ค่อยมีความเกี่ยวข้องกับสแต็ค HTML5 / JS ยอดนิยมในปัจจุบันมากนัก
เกรแฮม

3
-1 ดังนั้นคุณไม่ชอบ JavaScript นั่นคือคำสั่งของคุณโดยทั่วไป
Bruno Schäpper

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