3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ReactNativeでファイルをimportして動くけど型エラーが出ているとき

Last updated at Posted at 2020-05-23

動くけどVScode上でエラーが出ている

こんなことに遭遇しました。
アプリをTypeScriptで作ろうとし、ページ遷移をつけようとreact-navigationを使っていたところ

import { StackNavigationProp } from '@react-navigation/stack';
import { RouteProp } from '@react-navigation/native';

type Props = {
  navigation: StackNavigationProp<RootStackParamList, 'baseList'>;
  route: RouteProp<RootStackParamList, 'baseList'>;
};

StackNavigationPropの部分に赤線が出ている。
エラーを見てみると、

エクスポートされたメンバー 'StackNavigationProp' がありません。ts(2305)

とのことらしいので、該当ファイルを見にいくと

node_modules/@react-navigation/stack/lib/typescript/src/index.d.ts
/**
 * Types
 */
export type {
    StackNavigationOptions,
    StackNavigationProp,           // ちゃんとexportされてる!
    StackScreenProps,
    StackHeaderProps,
    StackHeaderLeftButtonProps,
    StackHeaderTitleProps,
    StackCardInterpolatedStyle,
    StackCardInterpolationProps,
    StackCardStyleInterpolator,
    StackHeaderInterpolatedStyle,
    StackHeaderInterpolationProps,
    StackHeaderStyleInterpolator, 
  } from './types';

ちなみにここでも赤線のエラーが出ていて

exportの部分
宣言またはステートメントが必要です。ts(1128)

{ } /typesの部分
';' が必要です。ts(1005)

ここでtypeを削除すると、packageのファイルも、ページのファイルもエラーが解消されます。
ただpackageなので触らない方が無難である。
というかexport typeってTS v3.8.1から使えるはずなのに、なぜエラー表示?というのが感想。


ということで、StackNavigationPropを直接importしに行きます。
こいつは'./types'から呼びされているようなので、

import { StackNavigationProp } from '@react-navigation/stack';
// ⬆︎を⬇︎のように変更
import { StackNavigationProp } from '@react-navigation/stack/lib/typescript/src/types';

これで赤線のエラーが解消されました。
まだTypeScriptを触ってほんの少しですが、ものすごく型エラーで怒られるのでしょんぼりします。
アプリは動くけど、赤線エラーばっかりでどうやって解消するのか調べるところからなので、
私のように気になる人は進捗が亀の進みなってしまう・・・

もしや、このエラーが出るのってVScodeの設定の問題?

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?