Comment concat deux tableau typé qui sont de deux types différents qui s'étendent/héritent du même type?
J'ai deux classes qui héritent de la même superclasse:
class Vehicle {}
class Bus extends Vehicle {}
class Truck extends Vehicle {}
Nous allons avoir deux tableaux typés:
var buses : Bus[];
var trucks : Truck[];
et une fonction qui accepte un tableau de la super-classe type.
function checkOil(vehicles : Vehicle[]) {}
Je peux passer dans la gamme de bus ou d'une matrice de camions, mais je ne peut pas les fusionner et de les passer ensemble:
function checkOil(buses.concat(trucks));
//error TS2082: Supplied parameters do not match any signature of call target:
Types of property 'pop' of types 'Bus[]' and 'Track[]' are incompatible:
Comment puis-je fusionner ces tableaux?
EDIT: Tapuscrit De L'Aire De Jeux
- Vous pouvez copier les deux hommes dans une base suffisamment large éventail de
Vehicle
s. Pourquoi voulez-vous faire? - Concat à la gamme de Véhicule ne fonctionnera pas. Copie par le biais de boucle, mais qui est sous-optimale, c'est pourquoi je chercher la meilleure solution ici.
Vous devez vous connecter pour publier un commentaire.
Le casting de
<Vehicle[]>
devrait fonctionnerTapuscrit sera de voter pour le
(busses)
àVehicle[]
, et il en sera de même avec le restepar exemple, ce sera de retour (dans la console) deux objets - Véhicules
Tapez simplement affirmer le premier tableau d'un type commun de ces deux types de tableau: