[英]Firebase v8 Typescript definition import for User
使用以前版本的 Firebase,我使用以下方式导入User
的 Typescript 定义:
import {User} from 'firebase';
在引入v8之后,此导入不再有效:
模块'"../../../../node_modules/firebase"'没有导出成员'User'。 您的意思是改用“从“../../../../node_modules/firebase”导入用户”吗?
发行说明指出 CJS 捆绑包已被删除这一事实,但并未提及现在应如何解决此导入问题。
任何帮助表示赞赏,在此先感谢您。
你可以这样说:
import firebase from "firebase/app"
const user: firebase.User = ...
或者,如果您想缩写它:
import firebase from "firebase/app"
type User = firebase.User
const user: User = ...
在User
Firebase JS SDK v8.0.0 导入User
,我能够解决我的问题,如下所示:
import {User} from '@firebase/auth-types';
您是否尝试过导入 firebase 然后使用firebase.User
访问 User ? 它显然更笨拙,但对我有用。
编辑:我之前也遇到了导入冲突的问题 - 我有一个名为 firebase.ts 的文件导致我的应用程序关闭。 只要提到它如果你碰巧有类似的东西
另一个替代import
荷兰国际集团firebase
是在添加火力类型index.d.ts
文件:
/// <reference types="firebase" />
type Firebase = typeof firebase.default
type FirebaseApp = firebase.default.app.App
type FirebaseUser = firebase.default.User
注意:我必须使用firebase.default
而不是firebase
因为我使用的是三重斜线指令/// <reference types="..." />
您可以通过在index.d.ts
文件中导入index.d.ts
来省略.default
:
import firebase from "firebase/app"
type Firebase = typeof firebase
type FirebaseApp = firebase.app.App
type FirebaseUser = firebase.User
对于 V9.0.0(Web 版本 9(模块化),这可以通过
// make alias for greater readability
import { User as FirebaseUser } from "firebase/auth";
然后您可以通过以下方式使用它:
// here direct use the type inside a hooks
const [user, setUser] = useState<FirebaseUser | null>(null)
user: firebase.default.User | null = null;
为我工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.