问题描述
我决定将整个项目所需的所有类型声明为一个d.ts
文件。
allTypes.d.ts
declare namespace PROJECT {
interface MY_INTERFACE {
// ...
}
}
只需声明该名称空间,我就可以在所有项目文件中使用以下内容:
const something: PROJECT.MY_INTERFACE = {
// ...
};
到目前为止,这一直有效。
但是现在我需要声明一个基于现有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
命名空间就不再对项目文件可见。
我该如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)