動くけど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)
とのことらしいので、該当ファイルを見にいくと
/**
* 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の設定の問題?