質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

340閲覧

CloudFunctionsのビルド時の依存性、無関係に思われる宣言が重複してエラーになる問題

nekowakaritu

総合スコア1

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/05/10 13:21

編集2020/05/10 13:45

前提・実現したいこと

ReactNative with Expo でアプリ開発をしています。今回firebaseのcloudfunctionsを導入しているところです。
ディレクトリ構成は簡略化すると以下のようになっています。

ReactNativeProject --firebase(今回のcloudfunctions導入前から使用している設定、initializeAppの記述) --package.json --node_modules --src --functions --packcage.json --node_modules --src

/ReactNativeProject/functionsで
firebase deploy --only functions
をした時に、ビルドの際に../node_modulesをみにいって、@types/react-nativeあたりで宣言されているものと、./node_modules/firebaseあたりで宣言されているものとで名前が衝突してしまいエラーになっているようです(もちろん型情報も違う)。

個人的にはカレントディレクトリ内で完結できれば通ると思うのですが、そのようにする方法はありますでしょうか。
↑この考え自体が間違っている可能性もありますので、包括的に教えていただけると尚嬉しいです。

発生している問題・エラーメッセージ

一例です。26件ほど同様のエラーが見られます

../node_modules/@types/react-native/globals.d.ts:294:5 - error TS2717: Subsequent property declarations must have the same type. Property 'onclose' must be of type '((this: WebSocket, ev: CloseEvent) => any) | null', but here has type '((event: WebSocketCloseEvent) => void) | null'. 294 onclose: ((event: WebSocketCloseEvent) => void) | null; ~~~~~~~ node_modules/typescript/lib/lib.dom.d.ts:18450:5 18450 onclose: ((this: WebSocket, ev: CloseEvent) => any) | null; ~~~~~~~ 'onclose' was also declared here.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。

firebase initで作らせたfunctionsディレクトリのtsconfig.jsonのcompilerOptionsにskipLibCheck:trueを加えて、.d.tsファイルの型チェックをスキップしました。
本質的解決ではないので、より良い方法がありましたら、教えてください。

投稿2020/05/12 10:35

nekowakaritu

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問