簡單的問題,我們有一個自定義包,它axios用作依賴項并匯出一個函式,該函式回傳一個帶有一些自定義默認配置的 Axios 客戶端。問題是我想要的AxiosInstance介面不是從包本身匯出的,axios它不是我專案中的依賴項。
// @myCustomDep
import { AxiosInstance } from 'axios';
export function createAxiosClient(): AxiosInstance { //... }
// Main project
import { createAxiosClient } from '@myCustomDep';
// Err: Cannot find name 'AxiosInstance'.
function buildClient(): AxiosInstance {
const axiosClient = createAxiosClient();
return axiosClient;
}
在不修改基礎依賴項(如果可能)的情況下處理此匯入的正確方法是什么?
uj5u.com熱心網友回復:
只要它是您的依賴項的依賴項,您也可以將其列為您自己的依賴項。
但即使不這樣做,您仍然可以直接從傳遞依賴項匯入。
TypeScript 只會在它在你的 中找不到它時才會抱怨node_modules,無論你是否將它列為依賴項。
您還可以使用 TypeScript 實用程式型別:ReturnType<typeof createAxiosClient>
https ://www.typescriptlang.org/docs/handbook/utility-types.html#returntypetype
顯然,如果可能,您將讓您的自定義依賴項重新匯出其 API 公開的任何內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/419265.html
標籤:
