Código es:
const foo = (foo: string) => {
const result = []
result.push(foo)
}
Recibo el siguiente error de TS:
[ts] El argumento de tipo 'string' no es asignable al parámetro de tipo 'nunca'.
¿Qué estoy haciendo mal? ¿Es esto un error?
Código es:
const foo = (foo: string) => {
const result = []
result.push(foo)
}
Recibo el siguiente error de TS:
[ts] El argumento de tipo 'string' no es asignable al parámetro de tipo 'nunca'.
¿Qué estoy haciendo mal? ¿Es esto un error?
Este parece ser un comportamiento extraño en TypeScript con el que están atrapados por razones heredadas. Si tienes el código:
const result = []
Normalmente se trataría como si hubieras escrito:
const result:any[] = []
sin embargo, si tienes tanto noImplicitAny
en FALSE, Y strictNullChecks
en TRUE en tu archivo tsconfig, se trata como:
const result:never[] = []
Este comportamiento desafía toda lógica, en mi humilde opinión. ¿Activar las comprobaciones de nulos cambia los tipos de entrada de un array? Y luego, ¿activar noImplicitAny
en realidad restaura el uso de any
sin advertencias?
Es poco intuitivo que agregar una comprobación de tipo adicional (noImplicitAny
) resulte en una comprobación de tipos más relajada, especialmente cuando introduce lo que estabas intentando eliminar.
Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.