yarnpkg - Hur får jag Yarn att platta till mina TypeScript-typningar?


Jag har installerat både @types/react och @types/react-dom. Säg att de var på version 15 innan, och att jag sedan uppgraderade båda med yarn upgrade @types/react@16 @types/react-dom@16.

@types/react-dom deklarerar ett beroende på @types/react med "@types/react": "*", dvs det borde kunna fungera med den nyligen installerade versionen. Dock verkar det som att Yarn har låst beroenden på @types/react@* till @types/react@^15.0.22.

Resultatet av detta är att @types/react-dom har sin egen kopia av React-typningarna, fortfarande på v15 - vilket gör att TypeScript börjar klaga på att jag har dubbla typdefinitioner.

Vad är det lämpliga sättet att uppgradera till v16 transitivt? Kan jag undvika att manuellt redigera min yarn.lock?

Svar #1

Notering för om någon stöter på detta i framtiden: den lösning jag har använt för tillfället är att manuellt redigera min yarn.lock:

-"@types/react@*", "@types/react@^15.0.22":
+"@types/react@^15.0.22":
  version "15.0.24"
  resolved "https://registry.yarnpkg.com/@types/react/-/react-15.0.24.tgz#8a75299dc37906df327c18ca918bf97a55e7123b"

-"@types/react@^16":
+"@types/react@*", "@types/react@^16":
  version "16.0.9"
  resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.9.tgz#2ad952abbb22617620927694f9a4bce292d7fb2b"

Med andra ord indikerar jag att beroenden som pekar på @types/react@* bör lösa till samma resultat som de som pekar på @types/react@^16.