টাইপস্ক্রিপ্টে একটি স্ট্রিংয়ের জন্য একটি নম্বর কাস্ট করা


175

টাইপস্ক্রিপ্টে নম্বর থেকে স্ট্রিংয়ে কাস্ট করার সর্বোত্তম উপায় (যদি একটি থাকে)?

var page_number:number = 3;
window.location.hash = page_number; 

এই ক্ষেত্রে সংকলক ত্রুটি ছুড়ে ফেলে:

টাইপ 'সংখ্যা' টাইপ 'স্ট্রিং' টাইপ করার যোগ্য নয়

কারণ location.hashএকটি স্ট্রিং।

window.location.hash = ""+page_number; //casting using "" literal
window.location.hash = String(number); //casting creating using the String() function

তাহলে কোন পদ্ধতিটি ভাল?

উত্তর:


294

"কাস্টিং" রূপান্তর চেয়ে আলাদা। এই ক্ষেত্রে, window.location.hashএকটি স্ট্রিংয়ে একটি নম্বরকে স্বয়ংক্রিয়ভাবে রূপান্তরিত করবে। তবে কোনও টাইপস্ক্রিপ্ট সংকলন ত্রুটি এড়াতে আপনি নিজেই স্ট্রিং রূপান্তর করতে পারেন:

window.location.hash = ""+page_number; 
window.location.hash = String(page_number); 

যখন আপনি একটি ত্রুটি নিক্ষিপ্ত হতে না চান তাহলে এই ধর্মান্তর আদর্শ page_numberহয় nullবা undefined। যেখানে page_number.toString()এবং page_number.toLocaleString()নিক্ষেপ করা হবে যখন page_numberহয় nullবা undefined

যখন আপনার কেবল কাস্টিং দরকার, রূপান্তর নয়, টাইপস্ক্রিপ্টে কোনও স্ট্রিংয়ে কাস্ট করতে হয়:

window.location.hash = <string>page_number; 
// or 
window.location.hash = page_number as string;

<string>বা as stringনিক্ষেপ টীকা চিকিত্সা টাইপ করা বিষয় কম্পাইলার বলতে page_numberকম্পাইল সময় একটি স্ট্রিং হিসেবে; এটি রান সময় রূপান্তর করে না।

যাইহোক, সংকলকটি অভিযোগ করবে যে আপনি কোনও স্ট্রিংতে একটি সংখ্যা নির্ধারণ করতে পারবেন না। আপনাকে প্রথমে কাস্ট করতে হবে <any>, তারপরে <string>:

window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;

সুতরাং এটি কেবল রূপান্তর করা সহজ, যা রান সময় এবং সংকলনের সময় টাইপ পরিচালনা করে:

window.location.hash = String(page_number); 

(স্ট্রিং-নম্বর কাস্টিং ইস্যুটি ধরার জন্য @ রাস্লানপলুটসিগানকে ধন্যবাদ জানাই))


1
সাবধান, যদি page_numberএটি হয় * স্ট্রিংটিতে nullসেট window.location.hashকরে "null"। (আমি একটি ত্রুটি পছন্দ করব: ডি)।
জেরোইন

আপনি যদি window.location.hash = <any>page_number;
সংকলকটি

1
ব্যবহার রূপান্তর (অর্থাৎ। String(page_number)) বরং ঢালাই যখন আপনি কোনো ব্যবহার করতে চান প্রয়োজনীয় Stringমত পদ্ধতি, toLowerCase()
এরিকরবার্টব্রেউয়ার

31

শুধু ব্যবহার toStringবা toLocaleStringআমি বলতে চাই। তাই:

var page_number:number = 3;
window.location.hash = page_number.toLocaleString();

এই একটি ত্রুটি নিক্ষেপ যদি page_numberহয় nullবা undefined। আপনি যদি না চান যে আপনি নিজের অবস্থার জন্য উপযুক্ত এটি চয়ন করতে পারেন:

// Fix 1:
window.location.hash = (page_number || 1).toLocaleString();

// Fix 2a:
window.location.hash = !page_number ? "1" page_number.toLocaleString();

// Fix 2b (allows page_number to be zero):
window.location.hash = (page_number !== 0 && !page_number) ? "1" page_number.toLocaleString();

এটি একটি মুদ্রার মতো কমা যোগ করার সাথে সাথে বৃহত সংখ্যার জন্য লোকালস্ট্রিং ব্যবহার করবেন না। এটি শনাক্তকারীদের ধ্বংস করবে।
ওবায়দ

7

যে কোনও টাইপ স্ক্রিপ্টে নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে পারে। ব্যাকটিকটি "` "নোট করুন

window.location.hash = `${page_number}`

5

উইন্ডো.লোকেশন.হ্যাশ হ'ল একটি string, তাই এটি করুন:

var page_number: number = 3;
window.location.hash = page_number.toString(); 

0

কনস্টেট পৃষ্ঠা_ সংখ্যা = 3;

উইন্ডো.লোকেশন.হ্যাশ = পৃষ্ঠা_সংখ্যার স্ট্রিং হিসাবে; // ত্রুটি

"স্ট্রিং 'টাইপ করতে' সংখ্যার 'প্রকারের রূপান্তরটি ভুল হতে পারে কারণ কোনওটিই অপরের সাথে পর্যাপ্ত পরিমাণে ওভারল্যাপ হয় না this -> আপনি সংখ্যাটি স্ট্রিংয়ে টাইপকাস্ট করার চেষ্টা করলে আপনি এই ত্রুটিটি পাবেন। সুতরাং, প্রথমে এটি অজানাতে এবং তারপরে স্ট্রিংয়ে রূপান্তর করুন।

window.location.hash = (পৃষ্ঠা_ সংখ্যা অজানা হিসাবে) স্ট্রিং হিসাবে; // সঠিক পথ


-4

একটি সংখ্যায় একটি স্ট্রিং কাস্ট করতে "+" চিহ্ন ব্যবহার করুন।

window.location.hash = +page_number;

4
+সংখ্যায় কাস্ট করুন
02

1
একটি স্ট্রিংয়ে একটি সংখ্যা cast
ালাই করা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.