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

ฉันจะสามารถรับรายการทั้งหมดของไฟล์กำหนดประเภท Typescript ใน repository @types ได้อย่างไร?


ฉันกำลังใช้ Typescript ในโครงการของฉันและฉันมีตัวเลือกบางอย่างในแง่ของโมดูลที่จะใช้จาก "โลก" -- และเมื่อทุกอย่างเป็นไปในทิศทางเดียวกัน ฉันอยากจะมีตัวเลือกที่มีการกำหนด Typescript อยู่แล้ว -- ไม่ว่าจะอยู่ในแพ็กเกจเองหรือใน @types (DefinitelyTyped)

ปัญหาคือฉันไม่สามารถเห็นโมดูลทั้งหมดที่ถูกนิยามใน @types -- หรือฉันก็หาวิธีที่ฉันรู้ไม่เจอ GitHub กำลังตัดผลลัพธ์ของรายการไปประมาณ 1400 จาก 5000 ไฟล์ และฉันก็ไม่เห็นแหล่งข้อมูลชัดเจนแหล่งเดียวว่ามีอะไรอยู่ในรีโปถ้าฉันแค่ต้องการค้นหาหรือเรียกดูสิ่งต่าง ๆ

คุณสามารถใช้ฟังก์ชันค้นหาไฟล์ภายใน GitHub แต่ก็เหมือนว่ามันสมมติว่าคุณรู้อยู่แล้วว่าคำสำคัญมหัศจรรย์ที่คุณกำลังมองหาคืออะไร และการ Fork รีโปเพียงเพื่อที่จะสามารถค้นหาสิ่งต่าง ๆ ดูเหมือนไม่สะดวกมากนัก

ในทุกกรณี ผมคิดว่าปัญหานี้น่าจะถูกแก้ไขแล้ว แต่ทักษะการค้นหาของ Google ของผมจนถึงตอนนี้ยังไม่พบมัน (และแปลกที่ไม่มีการกล่าวถึงโดยตรงในหน้าของ DefinetlyType หรือ README.md ของ @types)

คำตอบ #1

คุณสามารถใช้คำสั่ง NPM CLI view เพื่อช่วยคุณได้

npm view <package> จะพยายามแสดงข้อมูลเกี่ยวกับแพ็กเกจ โดยการใช้มันคุณสามารถตรวจสอบการมีอยู่ของ @types ได้โดยใช้:

npm view @types/react

มันจะส่งกลับมาพร้อมกับข้อมูลเกี่ยวกับแพ็กเกจ ยืนยันว่ามีอยู่จริง หรือมันจะส่งกลับมาพร้อมกับข้อผิดพลาด 404 ในกรณีที่แพ็กเกจไม่มีอยู่จริง

ดังนั้นถ้าคุณมีชุดแพ็กเกจที่คุณต้องเลือก สามารถตรวจสอบว่ามีการกำหนด @types ด้วยวิธีนี้ได้เลย

นั่นจะช่วยให้คุณตรวจสอบ @types สำหรับคำจำกัดความได้ แต่จะไม่แสดงให้คุณเห็นว่ามีการรวมประเภทของแพ็กเกจไว้หรือไม่ สำหรับการตรวจสอบนั้น คุณสามารถใช้คำสั่งเดียวกันนี้ แต่กับแพ็กเกจเอง และมองหาคุณสมบัติ types หรือ typings ในผลลัพธ์ที่คุณได้รับจาก npm view

ตัวอย่างเช่น หากคุณรัน npm view redux คุณจะเห็นว่าผลลัพธ์ที่พิมพ์ออกมามี typings: './index.d.ts' อยู่ ซึ่งบอกคุณว่าชุดแพ็กเกจมาพร้อมกับไทป์โดยตรงจากกล่อง

อัปเดต

คำถามของคุณทำให้ฉันคิดอะไรบางอย่าง ดังนั้นฉันจึงสร้างเครื่องมือ CLI ง่ายๆ สำหรับรวมสองขั้นตอนที่ฉันกล่าวถึงข้างต้น ฉันได้เผยแพร่แพ็กเกจ is-typed ซึ่งคุณสามารถใช้ได้ดังนี้:

  1. การติดตั้ง: npm install -g is-typed
  2. การใช้งาน: is-typed react redux mobx

และมันจะตรวจสอบทั้งแพ็กเกจเอง รวมถึง @types สำหรับนิยามประเภทที่มีอยู่

คำตอบ #2

จนกระทั่งบางครั้งที่ผ่านมา npm @types จะดึงข้อมูลจาก definitely typed บน github โดยตรง คุณไม่สามารถเห็นทุกอย่างบน github ได้ แต่คุณสามารถโคลนรีโปและดูทุกอย่างได้ในเครื่องของคุณ

แค่โคลน https://github.com/DefinitelyTyped/DefinitelyTyped

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