javascript - Cómo forzar que todas las variables en Typescript tengan un tipo declarado
Entiendo que cuando declaras una variable en Typescript, puedes elegir si deseas o no especificar un tipo para la variable. Si no se especifica ningún tipo, se utiliza el tipo predeterminado "any". ¿Hay alguna manera de obligar a que todas las variables tengan un tipo declarado, incluso si puede ser "any"? Es decir, quiero un error del compilador cuando no se especifique un tipo. Esto es para que los programadores se vean obligados a dar un tipo a todo y evitar casos en los que las variables se dejen accidentalmente como "any".
Respuesta #1
No es cierto que una variable declarada sea necesariamente sin tipo en TypeScript. El compilador de TypeScript, cuando sea posible, inferirá un tipo basado en el lado derecho de una declaración.
Por ejemplo:
var x = 150;
x será un Número ya que el LHS es un número.
Puedes usar la opción de compilación de la línea de comandos para detectar declaraciones donde no se puede inferir el tipo usando --noImplicitAny:
Advertir sobre expresiones y declaraciones con un tipo 'any' implícito.
Esta opción detectaría un caso en el que una variable d, por ejemplo, se declara, pero no se le asigna un valor de inmediato.
var d;
Producirá un error:
error TS7006: El parámetro 'd' de 'test' tiene implícitamente un tipo 'any'.
El interruptor del compilador también captura parámetros sin un tipo especificado, y como @basarat señaló en un comentario, también captura tipos de retorno y miembros de clase/interfaz.
Hay un poco más de información en esta publicación del blog también. Ten en cuenta que también hay una configuración equivalente de MSBuild/proyecto disponible: <TypeScriptNoImplicitAny>.
Respuesta #2
También podrías configurar en tu tsconfig.json:
{
"compilerOptions": {
"noImplicitReturns": true,
"noImplicitAny": true
}
}
