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 fichier .js
dans l'espoir d'activer TS pour ce fichier. En fin de compte, je veux la même expérience de "linting" que Flow, donc j’ai installé le plugin TSLint pour pouvoir voir les avertissements/erreurs d’Intellisense.
Mais avec mon fichier ressemblant à:
// @ts-check
module.exports = {
someMethod: (param: string): string => {
return param;
},
};
et mon fichier tsconfig.json
ressemblant à ...
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"allowJs": true
}
}
Je reçois 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 a recommandé de désactiver la validation javascript dans vscode mais cela ne me montre pas les informations TypeScript Intellisense.
J'ai essayé de définir tslint.jsEnable
sur true
dans les paramètres de mon code vscode, comme indiqué dans la documentation relative à l'extension TSLint, mais sans succès.
Quelle est la configuration correcte pour utiliser les fichiers .js
avec TypeScript et obtenir Intellisense afin que je sache quelles sont les erreurs dans mon code avant d'exécuter des commandes TS?
J'utilise @ flow avec vscode mais j'ai le même problème.
Je l'ai résolu avec ces étapes:
Comment désactiver le typeScript intégré:
Utilisez "javascript.validate.enable": false
dans vos paramètres de code VS. Cela ne désactive pas ESLINT. J'utilise les deux ESLINT & Flow. Suivez simplement les instructions Flow For Vs Code Setup
Ajout de cette ligne dans settings.json. Aide "javascript.validate.enable": false
Vous devez utiliser un fichier _.ts
_ - par exemple. _test.ts
_ pour obtenir TypeScript validation, intellisense typing
of vars, types de retour, ainsi que la vérification d'erreur "typée" (par exemple, passer un string
à une méthode qui s'attend à ce qu'un paramètre number
s'éclaire).
Il sera transpilé en (standard) _.js
_ via tsc
.
Une clarification est nécessaire en fonction des votes négatifs, des commentaires très utiles et d'autres réponses.
types
Oui, vous pouvez effectuer type
l'enregistrement du code de VS dans des fichiers _.js
_ avec @ts-check
- comme indiqué dans l'animation.
Ce à quoi je faisais référence à l'origine pour TypeScript types
ressemble à ceci dans _.ts
_, ce qui n'est pas tout à fait la même chose:
_hello-world.ts
_
_function hello(str: string): string {
return 1;
}
function foo(str:string):void{
console.log(str);
}
_
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
_:
_//@ts-check
function hello(str: string): string {
return 1;
}
function foo(str:string):void{
console.log(str);
}
_
Le message d'erreur référencé par OP est affiché: _[js] 'types' can only be used in a .ts file
_
S'il y a quelque chose qui m'a échappé et qui couvre à la fois ce contexte et le contexte du PO, veuillez l'ajouter. Apprenons tous.