reactjs - Hvis jeg bruker en TypeScript-tuple i min React-app får jeg en ESLint-feil på linje 1 i VSCode?


Feilen er Parsing error: Cannot read property 'map' of undefined

Jeg opprettet en ny fil bare for å gjenskape feilen:

export default () => {
  let something: [string, boolean]
  something = ['something', true];
}

Mangler jeg noe? Alle andre typer ser ut til å fungere fint.

Svar #1

Problemet

Problemet er når du opprettet tuple-typen [string, boolean] dette er en ny måte å erklære typer med arrayer på som ble introdusert i Typescript 4.0 kalt Labeled Tuple Types.

Løsningen

Oppgrader dine react-scripts til v4 (Her er problemet på deres GitHub). Hvis du bruker yarn, bruk kommandoen yarn upgrade [email . Med npm bør det være noe lignende, du kan prøve npm install [email 

Svar #2

Hvis jeg forstår deg riktig, her er løsningen din (du trenger ikke å opprette en let for å registrere typene, men spesifiser direkte i funksjonen hvilke typer den vil returnere)

// main.ts
export default (): [string, boolean] => {
 return ["something", true];
};

Og hvis du trenger å kalle denne koden, oppretter du bare en slik komponent (eksempel):

import foo from "./main.ts"

const App = () => {
  return (
    <div>
      {foo().map(el =>
        <div>
          {el}
        </div>
      )}
    </div>
  )
};

Relaterte artikler