Vous devez indiquer explicitement à la Machine le type de La cible.
La façon de le faire est d'utiliser un type générique de la convertir en un type approprié:
this.countUpdate.emit((<HTMLTextAreaElement>e.target).value./*...*/)
ou (comme vous voulez)
this.countUpdate.emit((e.target as HTMLTextAreaElement).value./*...*/)
ou (encore une fois, question de préférence)
const target = e.target as HTMLTextAreaElement;
this.countUpdate.emit(target.value./*...*/)
Cela permettra à la Machine de savoir que l'élément est un textarea
et il de la valeur de la propriété.
La même chose pourrait être fait avec n'importe quel type d'élément HTML, chaque fois que vous donner à la Machine un peu plus d'informations à propos de leurs types, il vous rembourse avec les bons conseils et bien sûr, moins d'erreurs.
Pour rendre plus facile pour l'avenir, vous pourriez définir directement un événement avec le type de la cible:
// create a new type HTMLElementEvent that has a target of type you pass
// type T must be a HTMLElement (e.g. HTMLTextAreaElement extends HTMLElement)
type HTMLElementEvent<T extends HTMLElement> = Event & {
target: T;
// probably you might want to add the currentTarget as well
// currentTarget: T;
}
// use it instead of Event
let e: HTMLElementEvent<HTMLTextAreaElement>;
console.log(e.target.value);
// or in the context of the given example
emitWordCount(e: HTMLElementEvent<HTMLTextAreaElement>) {
this.countUpdate.emit(e.target.value);
}