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 */ });
我正在使用 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 */ });