Quiero usar mis children variables para diferentes casos:
var children = []; if (folderPath == '/') { var children = rootFolder; } else { var children = folder.childs; }Pero me sale el mensaje de error:
la variable 'hijos' debe ser del tipo 'cualquier[]' pero aquí tiene el tipo 'Carpeta[]'
¿Qué significa esto?
En general, si "usar una variable para diferentes casos" implica usarlos para diferentes tipos, entonces estás haciendo algo mal.
Suponiendo que rootFolder es del tipo Folder y folder.childs es Folder[] , su código parece que podría ser algo así como
const children: Folder[] = (folderPath === '/' ? [rootFolder] : folder.childs);y, de hecho, deberías poder hacer
const children = (folderPath === '/' ? [rootFolder] : folder.childs);también y dejar que la inferencia maneje las cosas.
Si quieres usar if , entonces
let children: Folder[]; if (folderPath === '/') { children = [rootFolder]; } else { children = folder.childs; } debería estar bien; TypeScript notará que la variable siempre se establece definitivamente después de eso, incluso if no tiene un valor inicial.