在 '.d.ts' 文件中使用 'export declare function' 和 'export function' 有什么区别

What's the difference between using 'export declare function' and 'export function' in a '.d.ts' file

我在打字稿声明文件中看到人们这样写减速:

export function useTheme(): ITheme;

但我的印象是 declare 关键字对于为其他地方定义的函数编写类型减速是必要的?

如果这是有效的,export declare function useTheme(): ITheme;也是如此,那么有什么理由选择其中之一吗?

为简单起见,如果您想在代码中创建一些声明,就像您知道某些函数全局存在但编译器不知道那样——您可以使用 declare 关键字。但是定义文件有点不同。因为这实际上是定义文件,所以除了声明之外别无其他,因此无论您是否使用 declare 关键字,这些文件都将所有实体视为声明。使用 declare 关键字只是一种约定,这显然是推荐的,因为在这种情况下我们不应该根据扩展名指定内容类型。这里 TypeScript 编译器知道 d.ts 是一个声明文件,但其他一些编译器可能不知道