Typescript "Cannot find name 'firebase'" Firebase 保留网址

Typescript "Cannot find name 'firebase'" Firebase reserverd URLs

我正在使用 Firebase 保留的网址:

<script src="/__/firebase/7.14.6/firebase-app.js"></script>
<script src="/__/firebase/7.14.6/firebase-storage.js"></script>
<script src="/__/firebase/init.js"></script>

但是,在我的应用程序入口点 index.ts 文件(被转换为 index.js <script type="module" src="index.js"></script>)中,

const storage = firebase.storage();

产生打字稿错误 Cannot find name 'firebase'.,这是有道理的,因为 firebase 是一个全局对象,未在 index.js 中定义。我该如何处理?

您的代码实际上可以正常工作。但是 TypeScript 编译器抱怨找不到全局 firebase 对象,这是正确的。

在像您这样的构建系统中使用 Firebase 时,您通常需要使用 npm 版本的 Firebase SDK。 setting up the SDKs using a module bundler.

下的 Firebase 文档对此进行了介绍

或者,您可以坚持使用当前的全球进口,然后使用 David East 在 TypeScript's new import() types feature explained 中描述的技巧:

declare var firebase: import('firebase');
const app = firebase.initializeApp({ /* config */ });