next-i18nextで型をつける方法
2021-04-13
公式サイトに書かれている通りに実装すると、きちんと型が付与されました。
next-i18nextの Setup に沿ってnext-i18nextを導入しますreact-i18nextの Create a declaration file に沿って型ファイルを生成します
注意点としては next-i18next の導入だからといって、型ファイルで import するパッケージを react-i18next から next-i18next へ変更しないようにしましょう。
next-i18next はあくまで Next.js を react-i18next や i18next とつなげてくれるパッケージでしかありません。
そのため本質的な実装は react-i18next や i18next に入っており、そちら側の型をフォローしてあげる必要があります。
一応 react-i18next.d.ts の実装をば。
import "react-i18next";
import common from "./public/locales/en/common.json";
declare module "react-i18next" {
interface Resources {
common: typeof common;
}
}
これで型に困ることはなくなりそうです。