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

typescript - การใช้ typings.d.ts ในไลบรารี Angular โดยไม่ต้องใช้รีเฟอเรนซ์แบบ triple-slash


ภายใน workspace ของ Angular CLI ผมสร้างไลบรารี foo ภายในไลบรารี foo ผมได้เพิ่มไฟล์ typings.d.ts จากนั้นผมสามารถอ้างอิงไปยัง type ที่ถูกกำหนดใน typings.d.ts จาก foo.module.ts โดยใช้คำสั่งสามเส้นของ Typescript ตอนนี้ ผมต้องการที่จะไม่ใช้คำสั่งสามเส้น แต่การลบคำสั่งนี้ทำให้เกิดข้อผิดพลาดดังต่อไปนี้:

error TS2304: Cannot find name 'MyLibrary'.

ฉันค่อนข้างประหลาดใจที่ได้รับข้อผิดพลาดนี้ เพราะว่า typings.d.ts ถูกกำหนดไว้ภายในไดเรกทอรี src และฉันกำลังใช้เวอร์ชันล่าสุดของ Typescript (v3.2.4) ดังนั้นฉันจึงคาดว่าคอมไพเลอร์จะหยิบ typings.d.ts อัตโนมัติ นอกจากนี้ฉันยังลองเพิ่มสิ่งต่อไปนี้ลงใน tsconfig.lib.json:

"include": [
  "src/typings.d.ts"
]

ฉันคาดหวังว่าการตั้งค่านี้อย่างน้อยน่าจะมีผล เพราะเอกสารของ ng-packagr ระบุว่าในโปรเจกต์ Angular CLI ไฟล์ tsconfig.lib.json อาจถูกแก้ไขได้

ดังนั้น คำถามเฉพาะของฉันคือดังนี้: เป็นไปได้หรือไม่ที่จะอ้างอิงประเภทจากไฟล์ typings.d.ts ภายในไลบรารี Angular โดยไม่จำเป็นต้องใช้การอ้างอิงแบบสามสแลช? ถ้าไม่ เป็นเพราะอะไร?

กล่องทรายของฉันอยู่ที่นี่

ทรัพยากรที่เกี่ยวข้อง

  • angular.io - การกำหนดไทพ์ปิ้งสำหรับไลบรารีระดับรันไทม์-โกลบอล
  • ng-packagr - วิธีการเพิ่ม typings แบบกำหนดเองไปยังการสร้างไลบรารี?

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