提问人:jjunsa 提问时间:10/29/2023 最后编辑:jjunsa 更新时间:10/29/2023 访问量:46
关于 Javascript / TypeScript 模块、导出、导入和函数/对象声明的问题
Question about Javascript / TypeScript modules, exporting, importing and function / object declarations
问:
我是 TypeScript 的新手,也是一般模块的新手。这是一个文件/模块,我需要一些关于到底发生了什么的指导:
export default function MyAdapter (client: Pool): AdapterType {
return {
async foo (
bar: barType
): Promise<returnType> {
...
return Promise<returnType>;
},
async myFunc ({
param1,
param2
}: {
param3: string
param4: string
}): Promise<returnType2> {
...
return Promise<returnType2>;
},
}
}
我正在导入并尝试做这样的事情:
import MyAdapter from "./adapter";
const pool = new Pool(...);
export default async function handler() {
const val = await MyAdapter(pool).foo(bar);
....
}
但是在进行 tsc 转译时出现以下 TypeScript 错误:
src/app/api/path/route.ts:14:12 - error TS2722: Cannot invoke an object which is possibly 'undefined'.
14 await MyAdapter(pool).foo(bar);
~~~~~~~~~~~~~~~~~~~~~~~~~
我很确定我做错了,因为我对 TypeScript 的基本和基础或模块的工作方式一无所知。
另外,关于如何使用顶部返回块中的嵌套函数声明 Adapter 函数的表示法是什么?
答:
评论
AdapterType