টাইপস্ক্রিপ্টে টাইপ assertions এবং নতুন `as` অপারেটরের মধ্যে কোন পার্থক্য?


142

টাইপস্ক্রিপ্ট স্পেস যে ধরণের প্রতিপত্তি কল করে তার মধ্যে কোনও পার্থক্য রয়েছে:

var circle = <Circle> createShape("circle");

এবং নতুন as অপারেটর:

var circle = createShape("circle") as Circle;

উভয়ই সাধারণত সংকলন-সময় কাস্টিংয়ের জন্য ব্যবহৃত হয়?

উত্তর:


167

পার্থক্যটি হ'ল as Circleটিএসএক্স ফাইলগুলিতে কাজ করে তবে <Circle>জেএসএক্স সিনট্যাক্সের সাথে দ্বন্দ্ব রয়েছে। asএই কারণে চালু করা হয়েছিল।

উদাহরণস্বরূপ, কোনও .tsxফাইলে নিম্নলিখিত কোডগুলি:

var circle = <Circle> createShape("circle");

নিম্নলিখিত ত্রুটির ফলাফল হবে:

ত্রুটি TS17002: 'চেনাশোনা' এর জন্য প্রত্যাশাযুক্ত জেএসএক্স সমাপ্তি ট্যাগ।

তবে, as Circleঠিক কাজ করবে।

as Circleএখন থেকে ব্যবহার করুন। এটি প্রস্তাবিত বাক্য গঠন।


39

উইকি পৃষ্ঠা থেকে : "টাইপস্ক্রিপ্টে নতুন কী আছে [1.6]":

নতুন .tsxফাইল এক্সটেনশন এবং asঅপারেটর

TypeScript 1.6 একটি নতুন .tsxফাইল এক্সটেনশান উপস্থাপন করে। এই এক্সটেনশানটি দুটি কাজ করে: এটি টাইপস্ক্রিপ্ট ফাইলগুলির অভ্যন্তরে জেএসএক্সকে সক্ষম করে এবং এটি নতুন asঅপারেটরটিকে castালাইয়ের জন্য ডিফল্ট উপায় করে তোলে (জেএসএক্স এক্সপ্রেশন এবং টাইপস্ক্রিপ্ট প্রিফিক্স কাস্ট অপারেটরের মধ্যে যে কোনও অস্পষ্টতা অপসারণ করে)। উদাহরণ স্বরূপ:

var x = <any> foo; 
// is equivalent to:
var x = foo as any;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.