Vigia

react-i18next을(를) 17.x에서 18.x로 업그레이드하기

react-i18next 17.1.13과 18.0.0의 공개 API를 TypeScript 타입에서 자동으로 비교한 결과입니다. 시그니처 변경은 호환성이 깨질 가능성이 있다는 뜻이며 확정은 아닙니다.

요약

삭제된 import 경로0
삭제된 export0
변경된 시그니처5
삭제된 클래스·인터페이스 멤버0
변경된 클래스·인터페이스 멤버0
새로 지원 중단됨1
요구 사항 변경 (engines, peer 의존성)3
새 export1

삭제된 export

감지되지 않았습니다.

변경된 시그니처

export이전이후
react-i18next · useSSR(initialI18nStore: Resource, initialLanguage: string): void(initialI18nStore: Resource, initialLanguage: string, props?: { i18n?: any; } | undefined): void
react-i18next · ErrorCode"NO_I18NEXT_INSTANCE" | "NO_LANGUAGES" | "DEPRECATED_OPTION" | "TRANS_NULL_VALUE" | "TRANS_INVALID_OBJ" | "TRANS_INVALID_VAR" | "TRANS_INVALID_COMPONENTS" | "USE_T_BEFORE_READY" | "SUSPENDED_WHILE_LOADING""NO_I18NEXT_INSTANCE" | "NO_LANGUAGES" | "DEPRECATED_OPTION" | "TRANS_NULL_VALUE" | "TRANS_INVALID_OBJ" | "TRANS_INVALID_VAR" | "TRANS_INVALID_COMPONENTS" | "USE_T_BEFORE_READY" | "SUSPENDED_WHILE_LOADING" | "I18N_NOT_INITIALIZED" | "ICU_TRANS_RENDER_ERROR" | "GLOBAL_INSTANCE_ON_SERVER"
react-i18next · I18nContextReact.Context<{ i18n: i18n; }>React.Context<{ i18n: i18n; defaultNS?: string | string[] | undefined; } | undefined>
react-i18next · useTranslation<const Ns extends FlatNamespace | $Tuple<FlatNamespace> | undefined = undefined, const KPrefix extends KeyPrefix<FallbackNs<Ns>> = undefined>(ns?: Ns | undefined, options?: UseTranslationOptions<KPrefix> | undefined): UseTranslationResponse<FallbackNs<Ns>, KPrefix>UseTranslationSelector | UseTranslationLegacy
react-i18next · UseTranslationOptions{ i18n?: any; useSuspense?: boolean | undefined; keyPrefix?: KPrefix | undefined; bindI18n?: string | false | undefined; nsMode?: "fallback" | "default" | undefined; lng?: string | undefined; }{ i18n?: any; useSuspense?: boolean | undefined; keyPrefix?: KPrefix | undefined; bindI18n?: string | false | undefined; bindI18nStore?: string | false | undefined; nsMode?: "fallback" | "default" | undefined; lng?: string | undefined; }

삭제된 클래스·인터페이스 멤버

감지되지 않았습니다.

변경된 클래스·인터페이스 멤버

감지되지 않았습니다.

새로 지원 중단됨

export@deprecated
react-i18next · TransSelectorProps.shouldUnescapeignored: Trans always decodes HTML entities

요구 사항 변경 (engines, peer 의존성)

이전이후
engines.node—>=22
peerDependencies.react>= 16.8.0>= 18.0.0
peerDependencies.i18next>= 26.2.0>= 27.0.0
새 export (1)
importexportkind
react-i18nextReactOptionsvariable

두 버전 사이의 changelog

패키지 작성자가 공개한 텍스트를 그대로 표시합니다.

18.0.0
Released together with i18next 27. The migration guide lists every change with what to do: https://react.i18next.com/latest/migrating-v17-to-v18

### Breaking changes

- requires i18next 27 (peer `>= 27.0.0`) and React 18 or later (peer `>= 18.0.0`). React 16 and 17 apps stay on react-i18next 17: on i18next 27, use react-i18next 17.1.13 or later (it brings the types of the `react` init options), or 18. `useSyncExternalStore` comes from React itself, so `use-sync-external-store` is no longer a dependency.
- `Trans` output no longer depends on `interpolation.escapeValue`: it always decodes HTML entities after parsing, as `IcuTrans` does, in text and in attribute values, both with `react.unescape` (attribute values used the built-in decoder before). With i18next's default `escapeValue: true`, a value `Tom & Jerry` rendered as `Tom &amp; Jerry` and a date `17/12/2025` as `17&#x2F;12&#x2F;2025`; both now render as written, and so do entities in the translation itself (`&amp;`, `&lt;`, `&nbsp;`, ...). Values still render as text, never as markup (since 17.1.10). The `shouldUnescape` prop and `react.transDefaultProps.shouldUnescape` are ignored and warn (`DEPRECATED_OPTION`, in development and with `debug: true`); remove them. Snapshot tests that contain entities inside `Trans` output need an update ([#1903](https://github.com/i18next/react-i18next/issues/1903), [#1893](https://github.com/i18next/react-i18next/issues/1893)).
- `Trans` and `IcuTrans` re-render on language change by themselves: they subscribe to the `react.bindI18n` (default `languageChanged`) and `react.bindI18nStore` events, like `useTranslation`. Before, they only updated when a parent re-rendered ([#1710](https://github.com/i18next/react-i18next/issues/1710)). They still neither load translations nor suspend; with a `t` prop, that `t` still decides the language. `TransWithoutContext` and `IcuTransWithoutContext` stay hook-free.
- the `react` options of an instance stay on that instance. `initReactI18next` copied them into module-wide defaults, so a second instance without `react` options inherited, for example, the first one's `useSuspense: false`. Set them on every instance, or call `setDefaults()` once.
- the `i18n` returned by `useTranslation` (and passed by `withTranslation` and `Translation`) forwards reads and writes to the instance. It was a copy taken when the language changed, so after `await i18n.changeLanguage('de')` the copy still said `en`, and properties set on it never reached the instance. It is still a new object whenever the language changes, for dependency arrays and the React Compiler. Because the old object now reads the current language too, a check like `prevProps.i18n.language !== this.props.i18n.language` (or the language of a `usePrevious(i18n)`) no longer sees a change: compare the objects (`prevProps.i18n !== this.props.i18n`) or keep the previous language yourself.
- `useSSR` and `withSSR` call i18next's `hydrate()` instead of writing `resourceStore.data`,

이 데이터를 AI 에이전트에 제공하세요

Vigia는 무료 MCP 서버입니다. 코딩 에이전트가 코드를 작성하기 전에 버전, 호환성을 깨는 변경, 취약점을 확인합니다. 가입도 API 키도 필요 없습니다.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Cursor에 추가VS Code에 추가★ GitHub에서 스타 누르기

그 밖의 MCP 클라이언트
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

에이전트 스킬(SKILL.md): 에이전트에게 Vigia를 언제 쓸지 알려 줍니다 · 풀 리퀘스트용 GitHub Action

자주 묻는 질문

react-i18next을(를) 17에서 18(으)로 업그레이드할 때 호환성이 깨지는 변경은 무엇인가요?

react-i18next 17.1.13과 18.0.0 사이에서 Vigia는 삭제된 export 0개, 변경된 시그니처 5개, 삭제되거나 변경된 클래스·인터페이스 멤버 0개를 찾았습니다.

react-i18next 18에서 지원 중단된 것은 무엇인가요?

react-i18next 18.0.0에서 export 또는 멤버 1개가 새로 지원 중단으로 표시되었습니다.

에이전트용

GET https://vigia.coredls.cloud/v1/packages/npm/react-i18next/upgrade?from=17.1.13&to=18.0.0