有关 Javascript / TypeScript 模块、导出、导入和函数/对象声明的问题

问题描述 投票:0回答:1

我是 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);
  ....
}

但我收到以下 TypeScript 错误:

Object is possibly 'undefined'.
Cannot invoke an object which is possibly 'undefined'.

我很确定我做错了,因为我不了解 TypeScript 的基本知识或模块的工作方式。

另外,如何在顶部返回块中使用嵌套函数声明 Adapter 函数的符号是什么?

javascript node.js typescript promise
1个回答
0
投票

Typescript 中导出和导入模块与 JavaScript 相同。但您需要指定您尝试在另一个文件中导入的模块不能是

undefined
的类型。

© www.soinside.com 2019 - 2024. All rights reserved.