如何在使用“声明名称空间”的d.ts文件中导入ts模块?

问题描述

我决定将整个项目所需的所有类型声明为一个d.ts文件。

allTypes.d.ts

declare namespace PROJECT {

  interface MY_INTERFACE {
    // ...
  }

}

只需声明该名称空间,我就可以在所有项目文件中使用以下内容:

const something: PROJECT.MY_INTERFACE = {
  // ...
};

enter image description here

到目前为止,这一直有效。

但是现在我需要声明一个基于现有JS对象的新类型。

@ constants / COLLECTIONS.ts

export const COLLECTIONS = {
  PROP_A: "PROP_A",PROP_B: "PROP_B",PROP_C: "PROP_C",};

所以我必须在allTypes.d.ts文件中执行以下操作。

allTypes.d.ts

import { COLLECTIONS } from "@constants/COLLECTIONS";

declare namespace PROJECT {

  interface MY_INTERFACE {
    // ...
  }

  type SOME_TYPE = keyof typeof COLLECTIONS   // THIS IS WORKING FINE

}

问题在于,仅通过在import的顶层执行allTypes.d.ts,我的PROJECT命名空间就不再对项目文件可见。

enter image description here

enter image description here

我该如何解决?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...