ارجاع فایل جاوااسکریپت در داخل تایپاسکریپت


من میخواهم از یک تابع جاوااسکریپت داخل یک فایل تایپاسکریپت استفاده کنم. چگونه میتوانم به فایل جاوااسکریپتی که شامل آن تابع است داخل فایل تایپاسکریپت ارجاع دهم؟

من تلاش کردم

<reference path="../libs/myjsfile.js" />

این هنگام ساختن باعث خطا میشود مانند: نمیتوان فایل مرجع شده را پیدا کرد: ../libs/myjsfile.js

پاسخ شماره ۱

در حالی که دو پاسخ بالا برای یک API کوچک یا با یک متغیر کار خواهند کرد، پاسخ صحیح این است که یک فایل اعلان نوع برای فایل جاوااسکریپت خود بنویسید.

فایل اعلام نوع برای مثال شما با نام myjsfile.d.ts خواهد بود، جایی که پسوند .d.ts به کامپایلر TypeScript میگوید که در حال پارس کردن یک فایل اعلام نوع است. اگر از Visual Studio استفاده میکنید، فایل اعلام نوع شما توسط کامپایلر TypeScript شناخته خواهد شد تا زمانی که در جایی (هر کجا) در پروژهای که روی آن کار میکنید قرار داشته باشد.

فایلهای اعلامیه، متادیتا درباره متغیرها، توابع و اشیاء جاوااسکریپت ذخیره میکنند تا کامپایلر تایپاسکریپت بتواند وظیفه خود را انجام دهد. اگر فایل جاوااسکریپت شما به طور تصادفی یک کتابخانه یا چارچوب رایج باشد، DefinitelyTyped قطعاً جایی است که میتوانید فایل تعریف مورد نیاز خود را پیدا کنید.

اگر جاوااسکریپت شما کار خودتان است یا کمتر شناخته شده است، باید فایل اعلام نوع خودتان را بنویسید. بخش نوشتن فایلهای .d.ts در کتاب راهنمای تایپاسکریپت را ببینید.

اگر فایل اعلام نام ترسناک به نظر میرسد، نگران نباشید - نوشتن آنها بسیار سادهتر از نوشتن برنامهها است. همچنین، به خاطر داشته باشید که نیازی نیست همه فرادادهها را برای فایل جاوااسکریپت خود مشخص کنید، فقط قابلیتهایی که نیاز دارید.

به من اطلاع بده اگر به کمکی نیاز داری!

پاسخ شماره ۲

شما فقط باید به کامپایلر بگویید که این متد خارج از تایپاسکریپت وجود دارد:

declare function myJavaScriptFunction(param1: number, param2: JQuery): void;

اطمینان حاصل کنید که وبسایت همهی فایلهای مورد نیاز را بارگذاری میکند، فایلهای معمولی js و فایلهای js که کامپایلر تایپاسکریپت تولید کرده است