Búsqueda de sitios web

angular - Tipo 'unknown' no se puede asignar al tipo 'string', al usar el operador filter(Boolean)


.ts:

siteName: string;

    this.store.pipe(
          select(getSiteName),
          filter(Boolean),
          take(1)
        ).subscribe(siteName => this.siteName = siteName);

Error :

Type 'unknown' is not assignable to type 'string'

Estoy obteniendo el error anterior para this.siteName, después de agregar el operador filter(Boolean) al pipe. Sin el operador filter no veía ningún error, ¿me estoy perdiendo de algo??

Respuesta #1

El error ocurre porque a TypeScript no le gusta que uses el constructor Boolean como la función predicada pasada a filter. Funciona si cambias a una función predicada explícita, así:

this.store.pipe(
    select(getSiteName),
    filter(x => Boolean(x)),
    take(1)
).subscribe(siteName => this.siteName = siteName);

Respuesta #2

Creo que el error se refiere a tu parámetro de la función subscribe que no tiene ningún tipo

.subscribe(siteName => this.siteName = siteName);

correcto sería:

.subscribe(siteName:string => this.siteName = siteName);

Artículos relacionados