Wpis z mikrobloga

Dlaczego mimo tej instrukcji warunkowej, dopuszczającej tylko string, i tak pojawia się błąd jak na screenie?

if (typeof reader.result === 'string' || reader.result instanceof String) {
img.src = reader.result;
}

Type 'string | (ArrayBuffer & String)' is not assignable to type 'string'.Type 'ArrayBuffer & String' is not assignable to type 'string'.
Uwaga - używam JSDoc.

#javascript #typescript #programowanie #webdev #frontend
Pobierz look997 - Dlaczego mimo tej instrukcji warunkowej, dopuszczającej tylko string, i tak...
źródło: comment_1668805082WmdikEYasw9zcc34SEujrL.jpg
  • 7
@look997: Pierwszy warunek sprawdzi czy reader.result jest typem string a drugi czy jest instancją String: pierwszy to typ prymitywny a drugi to wrapper (obiekt) pozwalający przekazywać stringa jako referencję jeśli z jakiegoś powodu miałbyś taki usecase. W każdym razie są to dwa różne typy (dla instancji String typeof zwróci "object") a jako że masz dysjunkcje (||), to masz union type string | String.