Estoy empezando a usar TypeScript en un proyecto de Node en el que estoy trabajando en Visual Studio Code. Quería seguir la estrategia "opt-in", similar a Flow. Por lo tanto, puse // @ts-checken la parte superior de mi .jsarchivo con la esperanza de habilitar TS para ese archivo. En última instancia, quiero la misma experiencia de "linting" que Flow, por lo tanto, instalé el complemento TSLint para poder ver las advertencias / errores de Intellisense.
Pero con mi archivo luciendo así:
// @ts-check
module.exports = {
someMethod: (param: string): string => {
return param;
},
};
y mi tsconfig.jsonarchivo parece ...
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"allowJs": true
}
}
Recibo este error: [js] 'types' can only be used in a .ts file.como se muestra a continuación en la imagen.
Vi esta pregunta que recomendaba deshabilitar la validación de JavaScript en vscode, pero eso no me muestra ninguna información de TypeScript Intellisense.
Intenté fijar tslint.jsEnablea trueen la configuración de mi vscode como se menciona en los documentos de extensión TSLint pero no hay suerte.
¿Cuál es la configuración correcta para usar .jsarchivos con TypeScript y obtener Intellisense para saber cuáles son los errores en mi código antes de ejecutar cualquier comando de TS?


.tsmostrarme los errores / advertencias de TS como se esperaba. Supongo que esto podría funcionar, pero esperaba que se usara más el método de suscripción@ts-checkmientras mantenía todas mis extensiones como.jsRespuestas:
Estoy usando @flow con vscode pero tuve el mismo problema.
fuente
"javascript.validate.enable": falseÚselo
"javascript.validate.enable": falseen la configuración de su código VS, no deshabilita ESLINT. Utilizo tanto ESLINT como Flow. Simplemente siga las instrucciones Flow For Vs Code SetupAñadiendo esta línea en settings.json. Ayuda
"javascript.validate.enable": falsefuente
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"}haga clic en Editar en settings.json y añadir lo siguiente:"javascript.validate.enable": false.Debe usar un
.tsarchivo, por ejemplo,test.tspara obtener lavalidación deTypeScript, intellisensetypingde vars, tipos de retorno, así como la verificación de errores "escritos" (por ejemplo, pasar unstringa un método que espera que unnumberparámetro genere un error).Se transpilará en (estándar) a
.jstravés detsc.Actualización (11/2018):
Se necesita una aclaración basada en votos negativos, comentarios muy útiles y otras respuestas.
typesSí, puede
typeverificar VS Code en.jsarchivos con@ts-check, como se muestra en la animaciónLo que originalmente me refería para Typecript
typeses algo como esto en el.tsque no es exactamente lo mismo:hello-world.tsEsto no se compilará.
Error: Type "1" is not assignable to Stringsi probó esta sintaxis en un archivo Javascript
hello-world.js:Se muestra el mensaje de error al que hace referencia OP:
[js] 'types' can only be used in a .ts fileSi hay algo que me perdí que cubra esto así como el contexto del OP, por favor agregue. Aprendamos todos.
fuente
.ts. IINM, las muestras muestran comprobación de errores e intellisense . El problema que tiene es (estática)typeing sus variables, y el retornotypestambién - por ejemplofoo:string,bar:number,fubar:MyClass,myMethod(f:Array):void,anotherMethod():string. Hth ...@ts-checkatributo. Muy engañoso ...Para cualquiera que aterrice aquí y todas las otras soluciones no funcionaron, pruebe esto. Estoy usando mecanografiado + reacciono y mi problema era que yo era asociar los archivos de vscode como
javascriptreactnotypescriptreacta fin de comprobar la configuración de las siguientes entradas.fuente