gpt4 book ai didi

typescript - 找不到名称 'firebase' Vanilla typescript

转载 作者:搜寻专家 更新时间:2023-10-30 21:47:06 25 4
gpt4 key购买 nike

我到处搜索都找不到解决这个问题的方法:

var config = {
apiKey: "xxxxxxxx",
authDomain: "xxxxxxxxx",
databaseURL: "xxxxxxxxx",
projectId: "xxxxxxx",
storageBucket: "xxxxxxxxxx",
messagingSenderId: "xxxxxxxx"
};
firebase.initializeApp(config);

我既没有使用 Angular 也没有使用 node.js,只是在 vscode 中使用了 vanilla typescript,无论我做什么,'firebase' 总是红线,并且找不到名称。我按照文档和一些 youtube 教程一步一步地进行了几次,我现在很绝望。部署工作,那里没有问题......

我也在我的 html 中使用了这个链接:

<script src="https://www.gstatic.com/firebasejs/5.5.5/firebase.js"></script>

在文件之间移动给定的片段也无济于事。我做错了什么?

我发现了一些奇怪的东西。在 chrome 控制台中,我能够找到“firebase”,它存在并从 CDN 导入,但它在 VSCode 中不一样,因为缺少名称错误,它仍然不允许我编译。

会不会跟我的tsconfig有关?

编辑 #2:我联系了 firebase 支持,我们正在寻找解决方案,我必须指出,他们拥有出色的技术支持,荣誉。我现在的理论是我的 VSCode .ts 文件无法从非 .ts 文件导入变量。这正常吗?

最佳答案

TypeScript 不知道您正在导入 firebase,因为导入发生在 html 文件中。虽然您可能很清楚您的 ts 文件将在同一个 html 文件中使用,但 TypeScript 无法确定这一点,并且它也不能假设您的 ts 文件只会用于已包含 firebase 的 html 页面。


最好的解决方案是使用npmfirebase作为一个真正的依赖

npm install --save firebase

然后导入到你的ts文件中:

import * as firebase from 'firebase';

var config = {
...
};
firebase.initializeApp(config);

然后使用 webpack 或类似工具 compile that TypeScript to a single js file


如果您不想添加真正的导入,那么您可以使用以下方法仅引用来自 firebase 的全局类型:

declare const firebase: typeof import('firebase');

var config = {
...
};
firebase.initializeApp(config);

这还需要您使用 npm 在本地安装 firebase。

关于typescript - 找不到名称 'firebase' Vanilla typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52967044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com