如何将 npm 包中的类型添加到声明命名空间的“d.ts”文件中?
How can I add a type from an npm package into a `d.ts` file declared namespace?
我有这个 TYPES.d.ts
文件,我在其中声明了一个 TYPES
命名空间
declare namespace TYPES {
type TYPE_A = XXX;
type TYPE_B = YYY;
}
然后我使用的是:const someFunc = (param: TYPES.TYPE_A): void => { ... };
它工作正常。
但现在我想在 TYPES
命名空间上添加一个类型,该类型是 NPM 包中存在的类型的 return 类型。
TYPES.d.ts
import type { SomeType } from "some-npm-package";
declare namespace TYPES {
type SOME_TYPE = ReturnType<typeof SomeType>;
}
但这会“破坏”d.ts
文件,因为 Typescript 似乎将其视为模块,而不是定义文件。
我怎样才能做到这一点并且仍然能够通过我的命名空间访问它?
刚刚找到一种方法:
TYPES.d.ts
declare namespace TYPES {
type SOME_TYPE = ReturnType<typeof import("some-npm-package").SomeType>;
type OTHER_TYPE = typeof import("some-npm-package").SomeType
type FOO_TYPE = typeof import("./someFile").FooType // ALSO WORKS WITH SRC FILES
}
这样您就可以避免“破坏”d.ts
文件声明命名空间的顶级导入。
我有这个 TYPES.d.ts
文件,我在其中声明了一个 TYPES
命名空间
declare namespace TYPES {
type TYPE_A = XXX;
type TYPE_B = YYY;
}
然后我使用的是:const someFunc = (param: TYPES.TYPE_A): void => { ... };
它工作正常。
但现在我想在 TYPES
命名空间上添加一个类型,该类型是 NPM 包中存在的类型的 return 类型。
TYPES.d.ts
import type { SomeType } from "some-npm-package";
declare namespace TYPES {
type SOME_TYPE = ReturnType<typeof SomeType>;
}
但这会“破坏”d.ts
文件,因为 Typescript 似乎将其视为模块,而不是定义文件。
我怎样才能做到这一点并且仍然能够通过我的命名空间访问它?
刚刚找到一种方法:
TYPES.d.ts
declare namespace TYPES {
type SOME_TYPE = ReturnType<typeof import("some-npm-package").SomeType>;
type OTHER_TYPE = typeof import("some-npm-package").SomeType
type FOO_TYPE = typeof import("./someFile").FooType // ALSO WORKS WITH SRC FILES
}
这样您就可以避免“破坏”d.ts
文件声明命名空间的顶级导入。