À l'aide de la Machine à super()
Je suis en train d'étendre une classe en caractères d'imprimerie. Je reçois cette erreur à la compilation: 'paramètres Fournis ne correspondent pas à la signature de l'appel de la cible.' J'ai essayé de référencement de l'artiste.nom de la propriété dans le super appel super(nom), mais ne fonctionne pas.
Des idées et des explications que vous pourriez avoir sera grandement apprécié. Merci Alex.
class Artist {
constructor(
public name: string,
public age: number,
public style: string,
public location: string
){
console.log(`instantiated ${name}, whom is ${age} old, from ${location}, and heavily regarded in the ${style} community`);
}
}
class StreetArtist extends Artist {
constructor(
public medium: string,
public famous: boolean,
public arrested: boolean,
public art: Artist
){
super();
console.log(`instantiated ${this.name}. Are they famous? ${famous}. Are they locked up? ${arrested}`);
}
}
interface Human {
name: string,
age: number
}
function getArtist(artist: Human){
console.log(artist.name)
}
let Banksy = new Artist(
"Banksy",
40,
"Politcal Graffitti",
"England /Wolrd"
)
getArtist(Banksy);
Vous devez vous connecter pour publier un commentaire.
Le super appel doit fournir tous les paramètres de la classe de base. Le constructeur n'est pas héréditaire. Commenté artiste, parce que je suppose qu'il n'est pas nécessaire en faisant comme ceci.
Ou si vous avez l'intention de l'art paramètre afin de remplir la base de propriétés, mais dans ce cas je suppose qu'il n'est pas vraiment un besoin de l'aide du public sur l'art de paramètre que les propriétés seraient héréditaires, et il ne serait que de stocker des données en double.
{ name: 'aoue', ... }
qui suit l'interface.