我遇到过这样的代码:
declare type A = { ... };
declare interface B { ... }
从搜索declare
关键字(并且由于某种原因没有指向我的TypeScript文档),当JavaScript中存在变量并且您需要从中引用它时使用declare
TypeScript,因此您向编译器声明此变量确实存在。
我发现使用此关键字的所有示例都使用如下:declare var a;
为什么我会在type
或interface
前面使用它?根据我对declare
的理解,这样做完全没用,但是编译器没有给我任何错误。
答案 0 :(得分:12)
看起来我刚刚找到原因。
来自这个github issue:
declare
在类型别名和接口上应该是可选的。
declare type
和declare interface
与type
和interface
相同由于我们已经以这种方式发布了类型别名,因此人们不得不多次编写
declare type
。我们可以打破他们并说'#34;写type
,而不是declare type
",但这不是一个真正原因的大规模休息。
总之,没有理由将declare
用于类型和接口。