如何使用 npm 包的内置打字稿定义(尤其是 firebase)

How to use built in typescript definitions of a npm package (firebase in particular)

我正在用打字稿为 firebase 编写一个网络应用程序。但我无法让 firebaseui 和 firebase 本身的进口工作。 这是我的一个普遍问题,我永远无法导入没有 @types 包的库附带的类型定义。我的设置似乎有问题,但我找不到我走错方向的地方。

我刚刚通过 npm 安装了“firebaseui”,并尝试按照 firebase 文档中的方式使用它,但我无法正确导入 firebaseui 和 firebase.auth。 Visual Studio Code 也不为此提供导入。

我会这样写导入:

import { firebase } from 'firebase';
import { firebaseui } from 'firebaseui';

我也看到其他人用这个也不起作用

import { firebase, firebaseui } from 'firebase';

编译器找不到模块 'firebase'。似乎没有从包中提取类型。

我的 tsconfig.json 看起来像这样:

    "compilerOptions": {
        "target": "es2015",
        "strict": true,
        "strictNullChecks": false,
        "esModuleInterop": true,
        "forceConsistentCasingInFileNames": true
    }
}

我的 TSC 版本是 7.15.1

我找到了这个问题,但没有解释,也不起作用。 How to get TypeScript to recognize firebase import

确实是我自己的错误。我关注了 firebase 网站上的官方文档,包的 github 页面可能更新或更准确(?)文档 firebaseui 必须导入为:

import firebaseui from 'firebaseui';

没有大括号。

Firebase 隐藏在 firebase 的子文件夹中:

import firebase from 'firebase/compat/app';

在包的 github 页面上找到解决方案,他们使用 import 而不是 require 来显示正确的路径。 https://github.com/firebase/firebaseui-web