web-dev-qa-db-fra.com

Comment puis-je désactiver toutes les vérifications de type TypeScript?

Je voudrais utiliser TypeScript à l'avenir, mais pour l'instant, j'ai choisi d'installer TypeScript dans Create React App. (Plus tard, je reviendrai et ajouter des types)

Par conséquent, je voudrais désactiver toutes les vérifications de type.

En ce moment, quand je fais quelque chose comme ça:

<PlaceSearchBar
    placeSearchChanged={this.placeSearchChanged}
/>


class PlaceSearchBar extends React.Component {
...
}

Je reçois une erreur:

Type error: Type '{ placeSearchChanged: (place: any) => void; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<PlaceSearchBar> & Readonly<{ children?: ReactNode; }> & Readonly<{}>'.
  Property 'placeSearchChanged' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<PlaceSearchBar> & Readonly<{ children?: ReactNode; }> & Readonly<{}>'.  TS2322

Apparemment, je dois déclarer des types dans React.Component<placeSearchChanged:function> ou quelque chose de ce genre.

Je pense que c'est ennuyeux et je voudrais désactiver toutes les vérifications dans mon tsconfig.json.

Comment puis-je désactiver toutes les vérifications (tout en conservant TypeScript installé, juste pour une utilisation future)?

Voici mon tsconfig.json actuel:

{
  "compilerOptions": {
    "target": "es6",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext",
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve",
    "noImplicitAny": false,
  },
  "include": [
    "src"
  ]
}
14
TIMEX

Ajoutez ceci à votre tsconfig.json:

{
  "compilerOptions": {
    ...
    "checkJs": false
    ...
  }
}

et respectez .js/.jsx fichiers pour l'instant. Utilisez le .ts/.tsx extension uniquement lorsque vous êtes prêt à utiliser des types.

Si vous préférez supprimer les erreurs ligne par ligne, vous pouvez utiliser un // @ts-ignore commentaire.

20
Karol Majewski

TypeScript sans types est Javascript. Démarrez votre projet sans TypeScript et convertissez-le lorsque vous êtes prêt à le faire. Commençant par <any> n'est pas une bonne pratique et n'a aucun sens à mon avis.

19
nologin

L'USP de TypeScript vérifie le type lors de la compilation. Il compile finalement en javascript. Commencez sans TypeScript. Vous pouvez toujours l'inclure dans votre projet lorsque vous le souhaitez avec une refactorisation.

https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html

1
Harshit Juneja

vous pouvez laisser la construction se produire même en présence d'erreurs TypeScript https://create-react-app.dev/docs/advanced-configuration/# ! ctr + f TSC_COMPILE_ON_ERROR

0
user1191175

Je suis d'accord avec Nologin, cela ne sert à rien, mais si vous le voulez vraiment, il y a quelques façons dont je peux penser, en voici quelques-unes:

Désactiver par fichier

ajouter ce commentaire en haut du fichier /* tslint:disable */

Exclure votre dossier src

Excluez vos dossiers de code de tslint.json (vous devrez peut-être le faire également sur tsconfig.json

{
 // some linting options
  linterOptions: {
    exclude: ['src/**','components/**'],
  }
}

Tslint.json et tsconfig vides

remplacez simplement vos fichiers tslint.json et tsconfig.json par un objet vide

0
Dave