reactjs - Hva er forholdet mellom @material-ui/core og @types/material-ui?


Her ser jeg et eksempelprosjekt som bruker material-ui.

Jeg ser at jeg har følgende pakker inne i package.json-filen

{
  ...
  "dependencies": {
    "@material-ui/core": "^1.4.1",
    ...
  },
  "devDependencies": {
    "@types/material-ui": "^0.20.6",
    ...
  },
  ...
}

Etter npm install ser jeg følgende kataloger i prosjektmappen min

node_modules/@types/material-ui/
node_modules/@material-ui/core/

Her er mine spørsmål:

  1. Jeg ønsket å forstå hvorfor material-ui bruker @ som en del av pakkenavnet sitt, er det sant at denne typen pakkenavn betyr at det er en TS-pakke? Altså, at den i seg selv inneholder typeinformasjonen.

  2. Hvis det ovenstående er sant, er det sant at /@types/material-ui/ ikke trengs i det hele tatt?

Svar #1

@ i pakkenavnet betyr ikke at det er en TypeScript-pakke; vanlige JavaScript-pakker kan også ha @-prefikset.

Prefikset @ betyr at dette er en omfattende pakke; det vil si at det finnes en familie av pakker under @material-ui/ samt under @types/.

I dette spesifikke tilfellet inneholder @material-ui/core sine egne typedefinisjoner (*.d.ts-filer), så @types/material-ui er ikke nødvendig og vil faktisk ikke bli brukt. Generelt er @types/-pakker nødvendig for vanlige JavaScript-pakker som ikke inneholder noen typedefinisjoner selv.

Relaterte artikler