استفاده از نام فضا به عنوان نوع در تایپاسکریپت
من تعاریف نوع برای گوگل مپ نصب کردهام که یک فضای نام مانند این اعلام میکند:
namespace google.maps {
export class Map {
// ...
}
// ...
}
پس اگر من فقط از API به صورت جهانی استفاده کنم، بهطور عالی کار میکند:
const map = new google.maps.Map();
برای قابلیت تست واحد، نمیخواهم به API به صورت سراسری دسترسی داشته باشم، بلکه میخواهم آن را تزریق کنم. اما به نظر میرسد نمیتوانم مشخص کنم که یک متغیر باید از نوع google.map باشد.
پس این کار نمیکند:
function mapFactory(api: google.maps) {
return new api.Map();
}
راه حلی برای استفاده از فضای نام به عنوان نوع وجود دارد؟
پاسخ شماره ۱
امتحان کنید :
function mapFactory(api: typeof google.maps) {
return new api.Map();
}
