Je commence à utiliser TypeScript dans un projet Node sur lequel je travaille dans Visual Studio Code. Je voulais suivre la stratégie "opt-in", similaire à Flow. Par conséquent, je mets // @ts-check
en haut de mon .js
fichier dans l'espoir d'activer TS pour ce fichier. En fin de compte, je veux la même expérience de "peluchage" que Flow, donc j'ai installé le plugin TSLint pour que je puisse voir les avertissements / erreurs Intellisense.
Mais avec mon fichier ressemblant à:
// @ts-check
module.exports = {
someMethod: (param: string): string => {
return param;
},
};
et mon tsconfig.json
fichier ressemble à ...
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"allowJs": true
}
}
J'obtiens cette erreur: [js] 'types' can only be used in a .ts file.
comme indiqué ci-dessous dans l'image.
J'ai vu cette question qui recommandait de désactiver la validation javascript dans vscode, mais cela ne me montre aucune information TypeScript Intellisense.
J'ai essayé la mise tslint.jsEnable
à true
mes paramètres de vscode comme mentionné dans l'extension TSLint docs , mais pas de chance là - bas.
Quelle est la configuration correcte pour utiliser des .js
fichiers avec TypeScript et obtenir Intellisense afin que je sache quelles sont les erreurs dans mon code avant d'exécuter des commandes TS?
.ts
me montrer les erreurs / avertissements TS comme prévu. Je suppose que cela pourrait fonctionner, mais j'espérais plus de la méthode opt-in en utilisant@ts-check
tout en conservant toutes mes extensions comme.js
Réponses:
J'utilise @flow avec vscode mais j'ai eu le même problème.
la source
"javascript.validate.enable": false
Utilisez
"javascript.validate.enable": false
dans vos paramètres VS Code, cela ne désactive pas ESLINT. J'utilise à la fois ESLINT et Flow. Suivez simplement les instructions Flow For Vs Code SetupAjout de cette ligne dans settings.json. Aide
"javascript.validate.enable": false
la source
Include Languages Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and emmet supported language. E.g.: {"vue-html": "html", "javascript": "javascriptreact"}
cliquez sur Modifier dans settings.json et ajoutez ceci:"javascript.validate.enable": false
.Vous devez utiliser un
.ts
fichier - par exempletest.ts
pour obtenir lavalidationTypescript, l'intellisensetyping
des vars, les types de retour, ainsi que la vérification des erreurs "typées" (par exemple, passer astring
à une méthode qui s'attend à ce qu'unnumber
paramètre entraîne une erreur).Il sera transpilé en (standard)
.js
viatsc
.Mise à jour (11/2018):
Clarification nécessaire basée sur des votes négatifs, des commentaires très utiles et d'autres réponses.
types
Oui, vous pouvez
type
archiver VS Code dans des.js
fichiers avec@ts-check
- comme indiqué dans l'animationCe à quoi je faisais initialement référence pour Typescript
types
est quelque chose comme ça dans.ts
lequel ce n'est pas tout à fait la même chose:hello-world.ts
Cela ne compilera pas.
Error: Type "1" is not assignable to String
si vous avez essayé cette syntaxe dans un fichier Javascript
hello-world.js
:Le message d'erreur référencé par OP s'affiche:
[js] 'types' can only be used in a .ts file
S'il y a quelque chose que j'ai manqué qui couvre cela ainsi que le contexte du PO, veuillez ajouter. Apprenons tous.
la source
.ts
. IINM, les exemples montrent la vérification des erreurs et l' intellisense . La question que vous avez est (statique)type
ing vos variables, et le retourtypes
aussi bien - par exemplefoo:string
,bar:number
,fubar:MyClass
,myMethod(f:Array):void
,anotherMethod():string
. Hth ...@ts-check
attribut. Very trompeuse ...Pour quiconque atterrit ici et toutes les autres solutions n'ont pas fonctionné, essayez-le. J'utilise tapuscrit + réagis et mon problème est que je fréquentait les fichiers vscode que
javascriptreact
ne pastypescriptreact
vérifier vos paramètres pour les entrées suivantes.la source