typescript - چگونه میتوان به یک فایل اعلان نوع برای جاوااسکریپت در پوشهای دیگر ارجاع داد؟


من در تلاش هستم فایلهای اعلام TypeScript را برای فایلهای جاوااسکریپت خود بنویسم، اما میخواهم آنها را در یک پوشه جداگانه ذخیره کنم:

src/
  types/
    foo.d.ts
  foo.js
// foo.d.ts
export function foo(bar): number
// foo.js
export const foo = bar => bar.length
// The type suggestion when calling foo from another file 
foo() //(alias) const foo: (bar: any) => any

حالا وقتی که foo را در فایلهای دیگر وارد و فراخوانی میکنم، پیشنهاد نوع کار نمیکند. وقتی که قبلاً کاری شبیه به این انجام میدادم، مجبور بودم فایل .d.ts را در همان دایرکتوری فایل JS قرار دهم. سعی کردم /// <reference/> اضافه کنم اما کمکی نکرد یا اینکه اشتباه انجام دادهام. من قصد ندارم فایلهای اعلان را صادر کنم و این صرفاً برای کمک به من در طول توسعه است. چطور میتوانم این کار را انجام دهم؟

پاسخ شماره ۱

آیا میگویید که شما میخواهید ابتدا فایلهای اعلان را بهعنوان نوعی قرارداد بنویسید و سپس بعداً به نوشتن پیادهسازی مطابق با آن بپردازید؟ به عنوان نوعی توسعه «مبتنی بر اعلان»؟

من مطمئن نیستم که بتوانید این کار را انجام دهید. فایلهای اعلامیه برای مصرفکنندگان تایپاسکریپت از کد غیر تایپاسکریپت هستند. شما در حال حاضر در تایپاسکریپت هستید. فکر میکنم چیزی که میگویید شبیه به همزیستی دو تعریف از یک نوع است.

(همانطور که ممکن است بدانید، ایجاد فایلهای اعلان یک فرآیند خودکار است وقتی که خاصیت declaration را در tsconfig.json خود تنظیم میکنید یا با استفاده از گزینه خط فرمان مانند tsc --declaration.)