Konstigt TypeScript-problem vid användning av ett kontrollerat inputfält med useController från react-hook-form med ett fältvärde som är en array


Jag bygger ett återanvändbart kontrollerat (anpassat select) input med react-hook-form.

Exempel på CodeSandbox

De har också några exempel i de officiella dokumenten för react-hook-form

Jag får lite oväntat TypeScript-beteende.

I mitt fall behöver jag att fälttypen ska vara Array<string> eftersom detta ska vara ett flervalsinmatningsfält. Men när jag gör det får jag typen för value (från useController)-prop som string | string[] istället för bara string[], vilket är vad jag skulle förvänta mig att det skulle vara.

Om jag bara väljer typen number, eller bara string till exempel. Då får jag de förväntade typerna på value-egenskapen:

Vad händer här?

Varför utvärderas value som string | string[] istället för bara string[] som jag definierar i FieldValue-typen?