node.js - Typescript - האם אני יכול "לחבר" טיפוסים ממודול אחד למודול אחר?
רקע
ל-Node יש חבילה שנקראת path שיש לה קובץ הגדרות סוגים משויך בתוך חבילת npm @types/node. מישהו יצר חבילת צד-לקוח שנקראת path-browserify שמכילה את אותו ממשק תכנות אפליקציות אך ללא סוגים.
שאלה
האם אני יכול להוסיף את סוגי @types/node ל-path כדי להשתמש עם path-browserify? בעצם אני רוצה להשתמש בסוגים במקום אחד תחת שם שונה. ניסיתי את זה:
// types.d.ts
declare module 'path-browserify' {
export {default} from 'path'
}
// usage.ts
import * as path from 'path-browserify'
const joined = path.join('/', 'file');
// ^ COMPILE ERROR: join not found
const joined = path.default('/', 'file');
// ^ RUNTIME ERROR: default not found
אבל אני לא מצליח לגשת ל-API נכון. האם יש דרך טובה יותר להשתמש בהגדרות טיפוס אלה? עדיף מבלי להעתיק את ה-API של path.
תשובה #1
נראה שאתה על המסלול הנכון. אתה יכול לעשות משהו כזה?
declare module 'path-browserify' {
import path from 'path'
export default path
}
לגבי השימוש שלך, נסה את הפעולה הבאה (במקום להשתמש בתחביר * as)
import path from 'path-browserify'
path.resolve(...)
ליד העניין, האם למודול path בכלל יש ייצוא ברירת מחדל ... ?
