Преобразование собственного класса Firebase из Javascript в Typescript дает мне ошибки - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь преобразовать свой предыдущий класс firebase Javascript в Typescript, но получаю следующее предупреждение / ошибку: Свойство 'auth' не существует для типа 'Firebase'.

Я пытался найтипроблема, но не могу найти четкий ответ. Кто-нибудь знает, что я делаю не так?

class Firebase {
  constructor() {
    app.initializeApp(config)

    this.auth = app.auth()
  }

  doSignInWithGoogle = () => this.auth.signInWithPopup(this.googleProvider)
}

Любая помощь очень ценится!

Ответы [ 2 ]

1 голос
/ 20 октября 2019

Firebase может быть настроен в Typescript, как показано ниже. Свойства класса app и auth могут быть открытыми или закрытыми в зависимости от предполагаемого дизайна.

import * as firebase from 'firebase/app'
import 'firebase/auth'


class Firebase {
  app: firebase.app.App
  auth: firebase.auth.Auth

  constructor() {
    // https://firebase.google.com/docs/reference/js/firebase.app.App
    this.app = firebase.initializeApp(config)
    this.auth = firebase.auth(this.app)
  }

  public signInWithGooglePopup(): Promise<firebase.auth.UserCredential> {
    // https://firebase.google.com/docs/reference/js/firebase.auth.Auth#sign-inwith-popup
    return this.auth.signInWithPopup(this.googleProvider)
  }
}
1 голос
/ 20 октября 2019

Объявите свойство auth в классе как private auth;.

Ваш код должен выглядеть так:

class Firebase {

    private auth;

    constructor() {
        app.initializeApp(config)

        this.auth = app.auth()
    }

    doSignInWithGoogle = () => this.auth.signInWithPopup(this.googleProvider)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...