是否有理由在类型和接口前使用declare关键字?

pus*_*kin 8 declare typescript

我遇到过这样的代码:

declare type A = { ... };
declare interface B { ... }
Run Code Online (Sandbox Code Playgroud)

从搜索declare关键字(并且由于某种原因没有指向我的TypeScript文档),declare在JavaScript中存在变量并且您需要从TypeScript引用它时使用,因此您向编译器声明此变量确实存在.

我发现使用此关键字的所有示例都使用如下: declare var a;

为什么我会在一个type或之前使用它interface?根据我的理解declare,这样做完全没用,但编译器没有给我任何错误.

pus*_*kin 12

看起来我刚刚发现了原因.

从这个github 问题:

declare 在类型别名和接口上应该是可选的.

declare typedeclare interface是相同的type,并interface

由于我们已经通过这种方式发送了类型别名,因此人们不得不写declare type了很多次.我们可以打破他们并说"写type,不是declare type",但这将是一个巨大的突破,没有真正的理由.

总之,没有理由使用declare类型和接口.