Stiamo usando una semplice dichiarazione di funzione piuttosto dove la funzione accetta sia un singolo oggetto o una matrice di oggetti di un certo tipo.Funzione dattiloscritto che prende uno o una serie di oggetti
semplice dichiarazione è:
interface ISomeInterface {
name: string;
}
class SomeClass {
public names: ISomeInterface[] = [];
public addNames(names: ISomeInterface | ISomeInterface[]): void {
names = (!Array.isArray(names)) ? [names] : names;
this.names = this.names.concat(names);
}
}
Ma dattiloscritto getta "tipo non è cedibile" errore.
C'è un modo migliore per farlo? Ovviamente potremmo avere due funzioni separate, ma penso che gestire single vs multiple in questo modo sia abbastanza buono.
Protip: invece di IsArray, nomi di uso = .concat [] (i nomi). 43% più veloce su cromo. –