在“.d.ts”文件中使用“导出声明函数”和“导出函数”有啥区别
Posted
技术标签:
【中文标题】在“.d.ts”文件中使用“导出声明函数”和“导出函数”有啥区别【英文标题】:What's the difference between using 'export declare function' and 'export function' in a '.d.ts' file在“.d.ts”文件中使用“导出声明函数”和“导出函数”有什么区别 【发布时间】:2020-10-10 04:13:43 【问题描述】:我在打字稿声明文件中看到人们这样写减速:
export function useTheme(): ITheme;
但我的印象是 declare
关键字对于为其他地方定义的函数编写类型减速是必要的?
如果这是有效的,export declare function useTheme(): ITheme;
也是有效的,那么有什么理由选择其中一个吗?
【问题讨论】:
【参考方案1】:简单来说,如果你想在代码中创建一些声明,就像你知道某个函数在全局范围内存在但编译器不知道 - 你使用 declare
关键字。但是定义文件有点不同。由于这实际上是定义文件,因此除了声明之外别无其他,因此无论您是否使用 declare
关键字,这些文件都将所有实体视为声明。使用declare
关键字只是一种约定,显然是推荐的,因为在这种情况下我们不应该根据扩展名指定内容类型。这里 TypeScript 编译器知道 d.ts
是一个声明文件,但其他一些编译器可能不知道
【讨论】:
以上是关于在“.d.ts”文件中使用“导出声明函数”和“导出函数”有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
导出原始 .ts 文件而不是 .d.ts 文件作为模块类型声明的后果
使用复杂的 .d.ts 文件 (chrome-app.d.ts)
typeScript声明文件的一个注意点:不能使用导入导出语法
Typescript、index.d.ts 和 webpack:找不到模块错误