আমি কেবল ভিজুয়ালস্টুডিও 2012 তে টাইপস্ক্রিপ্ট পরীক্ষা করছি এবং এর টাইপ সিস্টেমটিতে সমস্যা আছে। আমার এইচটিএমএল সাইটে "মাইকানভাস" আইডি সহ একটি ক্যানভাস ট্যাগ রয়েছে। আমি এই ক্যানভাসে একটি আয়তক্ষেত্র আঁকতে চেষ্টা করছি। এখানে কোড
var canvas = document.getElementById("mycanvas");
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
ctx.fillStyle = "#00FF00";
ctx.fillRect(0, 0, 100, 100);
দুর্ভাগ্যক্রমে ভিজ্যুয়াল স্টুডিও অভিযোগ করে
'getContext' বৈশিষ্ট্যটি 'এইচটিএমলেমেন্ট' টাইপের মানের উপর বিদ্যমান নেই
এটি দ্বিতীয় লাইনটিকে ত্রুটি হিসাবে চিহ্নিত করে। আমি ভেবেছিলাম এটি নিছক একটি সতর্কতা হবে তবে কোডটি সংকলন করে না। ভিজ্যুয়াল স্টুডিও বলেছে
বিল্ড ত্রুটি ছিল। আপনি কি সর্বশেষ সফল বিল্ডটি চালিয়ে যেতে এবং চালাতে চান?
আমি এই ত্রুটি মোটেও পছন্দ করি না। কেন কোনও গতিশীল পদ্ধতির প্রার্থনা নেই? সমস্ত পদ্ধতির পরে getContext অবশ্যই আমার ক্যানভাস উপাদানটিতে বিদ্যমান। তবে আমি ভেবেছিলাম এই সমস্যাটি সমাধান করা সহজ হবে। আমি স্রেফ ক্যানভাসের জন্য একটি প্রকারের টীকা যুক্ত করেছি:
var canvas : HTMLCanvasElement = document.getElementById("mycanvas");
var ctx: CanvasRenderingContext2D = canvas.getContext("2d");
ctx.fillStyle = "#00FF00";
ctx.fillRect(0, 0, 100, 100);
তবে টাইপ সিস্টেমটি এখনও সন্তুষ্ট হয়নি। এখানে প্রথম ত্রুটিতে নতুন ত্রুটি বার্তাটি দেওয়া হয়েছে:
'এইচটিএমলেমেন্ট' কে 'এইচটিএমএল ক্যানভাসিলিমেট'তে রূপান্তর করতে পারে না: টাইপ করুন' এইচটিএমএলিমিটি''র এইচটিএমএল ক্যানভাস এলিমেন্ট 'থেকে' ডেটা ইউআরএল 'হারিয়ে যাচ্ছে property
ঠিক আছে, আমি স্থির টাইপিংয়ের জন্য বাইরে আছি তবে এটি ভাষা অকেজো করে তোলে। টাইপ সিস্টেমটি আমার কী করতে চায়?
হালনাগাদ:
টাইপসক্রিপ্টটির প্রকৃতপক্ষে গতিশীল প্রার্থনার জন্য কোনও সমর্থন নেই এবং আমার সমস্যাটি টাইপকাস্টগুলির সাথে সমাধান করা যেতে পারে। আমার প্রশ্নটি মূলত এই একটি টাইপস্ক্রিপ্টের নকল : এইচটিএমলেমে কাস্টিং
CanvasRenderingContext2D
না করে ব্যবহার করা ভালany
।