আপনার টাইপস্ক্রিপ্টকে HTMLElement এর ধরণটি স্পষ্টভাবে বলতে হবে যা আপনার লক্ষ্য।
এটি করার উপায়টি হ'ল জেনেরিক টাইপটিকে যথাযথ প্রকারে ফেলে দেওয়ার জন্য:
this.countUpdate.emit((<HTMLTextAreaElement>e.target).value./*...*/)
বা (যেমন আপনি চান)
this.countUpdate.emit((e.target as HTMLTextAreaElement).value./*...*/)
বা (আবার, পছন্দসই বিষয়)
const target = e.target as HTMLTextAreaElement;
this.countUpdate.emit(target.value./*...*/)
এটি টাইপসক্রিপ্টটিকে জানতে দেবে যে উপাদানটি একটি textarea
এবং এটি মূল্যরূপ সম্পর্কে জানতে পারে।
এটি যে কোনও এইচটিএমএল উপাদানগুলির সাথেও করা যেতে পারে, আপনি যখনই টাইপস্ক্রিপ্টকে তাদের ধরণের সম্পর্কে কিছুটা আরও তথ্য দেন এটি আপনাকে সঠিক ইঙ্গিত এবং অবশ্যই কম ত্রুটির সাথে অর্থ প্রদান করে।
ভবিষ্যতের পক্ষে এটি আরও সহজ করার জন্য আপনি কোনও ইভেন্টের লক্ষ্যটির প্রকারের সাথে সরাসরি সংজ্ঞা দিতে চাইতে পারেন:
// 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);
}
<img [src]="url"> <br/> <input type='file' (change)="showImg($event)">
উপাদান: ভিত্তিতে img প্রদর্শন করুন,... this.url = event.target.result;
কিছু সময় কাজ করে না, যখন এটি ত্রুটিযুক্ত না হয় আপনি যেমন টিএসকেerror TS2339: Property 'result' does not exist on type 'EventTarget'
আরও এটি সম্পর্কে বলার পরামর্শ দিয়েছিলেন, সেই জায়গায় যেখানেHTMLTextAreaElement
আমি চেষ্টা করেছিHTMLInputElement
তখনtarget.value
আর কিছু হবে না ত্রুটিযুক্ত তবে চিত্র প্রদর্শিত হচ্ছে না।