为什么 TypeScript 中需要 `declare` 关键字?请举例说明
大家好!我开始学习 TypeScript,遇到了 `declare` 关键字。官方文档说它用于“声明存在于别处的变量、函数和类”。但我不太明白为什么需要它,以及它在实践中如何工作。
例如,我写一个使用全局变量 `$` (jQuery) 的简单脚本。我知道它通过 CDN 在 HTML 中加载,但 TypeScript 报错说 `$` 未定义。我尝试写:
```typescript
declare var $: any;
```
错误消失了。但为什么不能直接写 `var $: any;`?有什么区别?如果我写 `let $: any;`,也能工作,但 TypeScript 会认为我在创建新变量,而不是描述已存在的变量。
我还看到 `declare` 用在 `.d.ts` 文件中。如果可以在普通 `.ts` 文件中写所有内容,为什么还需要它们?请用简单的话解释 `declare` 的具体用途以及它在哪些情况下使用。