moduleSuffixes în TypeScript

Lista de sufixe încercate la rezolvarea unui import: "./buton" poate duce la buton.ios.ts (folosit în React Native).

Sintaxă
"compilerOptions": {
  "moduleSuffixes": [".ios", ".native", ""]
}

Ce face moduleSuffixes

Unele unelte, mai ales React Native, aleg fișierul după platformă: pentru import "./buton" caută întâi buton.ios.ts, apoi buton.ts. Cu moduleSuffixes, tsc face la fel: încearcă fiecare sufix din listă, în ordine, înainte de extensie.

Șirul gol "" înseamnă „fără sufix”; dacă lipsește din listă, buton.ts nu mai este găsit deloc. Implicit: nesetat (se caută doar buton.ts).

Parametri

Parametru Descriere
[".sufix", ..., ""] Sufixele încercate, în ordine. "" = fișierul fără sufix.

Exemple

Exemplul 1: Ce fișier este ales

files pornește doar de la index.ts, deci în program intră doar fișierul ales la import. Cu sufixul .ios este ales buton.ios.ts; fără moduleSuffixes ar fi ales buton.ts.

// tsconfig.json
{
  "compilerOptions": {
    "moduleSuffixes": [".ios", ""],
    "noEmit": true
  },
  "files": ["index.ts"]
}

// buton.ios.ts
export const platforma = "iOS";

// buton.ts
export const platforma = "web";

// index.ts
import { platforma } from "./buton";
console.log(platforma);

Rezultat (tsc 5.9)

$ npx tsc --listFilesOnly
/proiect/buton.ios.ts
/proiect/index.ts

Greșeli frecvente

  • Să uiți "" la final. Fișierele fără sufix nu mai sunt găsite.

Comenzi înrudite

  • moduleResolution: Alege regulile după care tsc găsește fișierul din spatele unui import („./calcul.js”, „react”, „@/utile”).
  • paths: Definește prescurtări pentru importuri (de exemplu „@/utile/calcul” pentru ./src/utile/calcul) folosite la verificarea tipurilor.
  • --listFilesOnly: Afișează fișierele care fac parte din compilare; –listFilesOnly se oprește aici, –listFiles compilează și apoi le afișează.