Union در زبان برنامه نویسی TypeScript
از نسخه TypeScript 1.4 به بعد امکان ترکیب دو یا چند نوع داده به این زبان افزوده شده است. برای ترکیب و یا چند نوع داده از نماد | (Pipe) استفاده می شود. به عبارت دیگر یک Union دنباله ای از نوع ها است که به صور افقی و با نماد | با هم ترکیب شده اند. در زیر می توانید سینتکس مربوط به یک Union را مشاهده کنید.
1 | Type1|Type2|Type3 |
متغیر از نوع Union
1 2 3 4 5 | var val:string|number val = 12 console.log("numeric value of val "+val) val = "This is a string" console.log("string value of val "+val) |
در این مثال یک متغیر با نام val و به صورت Union تعریف شده است. این بدان معناست که می توانیم هم مقدار عددی و هم مقدار رشته ای در آن متغیر ذخیره کنیم. کد فوق بعد از کامپایل شدن:
1 2 3 4 5 6 | //Generated by typescript 1.8.10 var val; val = 12; console.log("numeric value of val " + val); val = "This is a string"; console.log("string value of val " + val); |
خروجی:
1 2 | numeric value of val 12 string value of val this is a string |
ورودی تابع از نوع Union
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function disp(name:string|string[]) { if(typeof name == "string") { console.log(name) } else { var i; for(i = 0;i<name.length;i++) { console.log(name[i]) } } } disp("mark") console.log("Printing names array....") disp(["Mark","Tom","Mary","John"]) |
در این مثال ورودی تابع disp هم می تواند یک رشته باشد و هم می توانید یک آرایه از نوع رشته باشد. کد فوق بعد از کامپایل شدن:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //Generated by typescript 1.8.10 function disp(name) { if (typeof name == "string") { console.log(name); } else { var i; for (i = 0; i < name.length; i++) { console.log(name[i]); } } } disp("mark"); console.log("Printing names array...."); disp(["Mark", "Tom", "Mary", "John"]); |
خروجی:
1 2 3 4 5 6 | Mark Printing names array…. Mark Tom Mary John |
Union و آرایه ها
مقادیر مثال آرایه ها، پراپرتی ها، اینترفیس ها هم می توانند به صورت Union باشند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var arr:number[]|string[]; var i:number; arr = [1,2,4] console.log("**numeric array**") for(i = 0;i<arr.length;i++) { console.log(arr[i]) } arr = ["Mumbai","Pune","Delhi"] console.log("**string array**") for(i = 0;i<arr.length;i++) { console.log(arr[i]) } |
در این مثال یک متغیر به نام arr تعریف شده است که قابلیت ذخیره یک آرایه از نوع عددی و رشته را دارد. کد فوق بعد از کامپایل شدن:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //Generated by typescript 1.8.10 var arr; var i; arr = [1, 2, 4]; console.log("**numeric array**"); for (i = 0; i < arr.length; i++) { console.log(arr[i]); } arr = ["Mumbai", "Pune", "Delhi"]; console.log("**string array**"); for (i = 0; i < arr.length; i++) { console.log(arr[i]); } |
خروجی:
1 2 3 4 5 6 7 8 | **numeric array** 1 2 4 **string array** Mumbai Pune Delhi |
هیچ نظری ثبت نشده است