Typescript 如何定义稍后将分配给初始化类的变量的类型?

Typescript 如何定义稍后将分配给初始化类的变量的类型?,typescript,Typescript,我正在尝试这样做: let cached: TYPETOBENAMED | undefined; export default async function getPackage() { if (cached) { return cached; } return import("@package/package_name").then(({ default: AClass }) => { cached = new AClass({

我正在尝试这样做:

let cached: TYPETOBENAMED | undefined;

export default async function getPackage() {
  if (cached) {
    return cached;
  }

  return import("@package/package_name").then(({ default: AClass }) => {
    cached = new AClass({
      key: apiKey
    });
    return cached;
  });
}
我想将
cached
定义为
unknown | undefined
,但是这会引发ts错误
TS2571:对象的类型为“unknown”


如何定义将分配给初始化类的变量的类型?

我通过这样做解决了这个问题:


let cached:import(“@package/package_name”)。默认值|未定义 

请考虑修改这个问题中的代码,以便构成一个当它落入独立IDE时,清楚地显示出你所面临的问题。这将允许那些想要帮助您的人立即着手解决问题,而无需首先重新创建问题。它将使您得到的任何答案都可以根据一个定义良好的用例进行测试。最小的可复制示例将需要一个apiKey,这不是为公众所用的。一般来说,要做一个测试,您应该编写一些显示问题的新代码;您不必公开任何受阻碍的或私有的信息来执行此操作。虽然这可能会解决您的问题,但它没有解释如何解决类似问题,也不会明显帮助其他人解决类似问题,因为这取决于导入的包具有名为
default
的导出类型。请考虑修改问题和答案,以便对将来读者有用。祝你好运