Vivasoft-logo

4.0 āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ•ā§āĻ¸

āĻ–ā§āĻŦ āĻ¸āĻšāĻœāĻ­āĻžāĻŦā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻ—ā§‡āĻ˛ā§‡ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ•ā§āĻ¸ āĻšāĻšā§āĻ›ā§‡ āĻŸāĻžāĻ‡āĻĒāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĢāĻŋāĻšāĻžāĻ° āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ°āĻŋ-āĻ‡āĻ‰āĻœā§‡āĻŦāĻ˛ āĻĢāĻžāĻ‚āĻļāĻ¨, āĻ•ā§āĻ˛āĻžāĻ¸, āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻ¸āĻš āĻ›ā§‹āĻŸ āĻ›ā§‹āĻŸ āĻ•ā§‹āĻĄ āĻ•āĻŽā§āĻĒā§‹āĻ¨ā§‡āĻ¨ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžā§Ÿ, āĻ¯āĻž āĻ†āĻ˛āĻžāĻĻāĻž āĻ†āĻ˛āĻžāĻĻāĻž āĻĄāĻžāĻŸāĻžÂ  āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ•āĻ¨āĻ¸ā§‡āĻĒā§āĻŸ āĻŸāĻŋ āĻ¯ā§‡ āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻŸāĻžāĻ‡āĻĒāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸÂ  āĻāĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°Â  āĻšā§Ÿ āĻ¤āĻž āĻ¨ā§Ÿ, C#, Java, Rust, Go āĻ¸āĻš āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯Â  Strongly-Typed Language āĻāĻ‡ āĻĢāĻŋāĻšāĻžāĻ°āĻŸāĻŋ āĻ¸āĻžāĻĒā§‹āĻ°ā§āĻŸ āĻ•āĻ°ā§‡āĨ¤

4.1 āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨Â 

āĻāĻ•āĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ†āĻŽāĻ°āĻž āĻŸāĻžāĻ‡āĻĒ āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ āĻĄāĻŋāĻ•ā§āĻ˛āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄā§‡āĻŸāĻž āĻŸāĻžāĻ‡āĻĒ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°Â  āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ•ā§āĻ¸ āĻāĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ Properties āĻ“ Usability āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻ•āĻŋāĻ›ā§ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻĨāĻžāĻ•āĻž āĻ‰āĻšāĻŋāĻ¤āĨ¤ āĻ¯ā§‡āĻŽāĻ¨: āĻ°āĻŋ-āĻ‡āĻ‰āĻœā§‡āĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋ āĻ•āĻ¨āĻ¸ā§‡āĻĒā§āĻŸāĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ•ā§āĻ¸-āĻ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻŸāĻžāĻ‡āĻĒ āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ āĻ•āĻŋ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•ā§‡āĻ¨ āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤

āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻŋāĻˇā§ŸāĻ—ā§āĻ˛ā§‹ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤Â 

				
					function identity(arg: number): number { 
   return arg; 
}
				
			

āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ identity āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¯āĻž āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ•ā§‹āĻĄ āĻ āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻ•āĻ˛ āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡āĨ¤ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻžāĻŽā§āĻŦāĻžāĻ° āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­ā§āĻ¯āĻžāĻ˛āĻŋāĻĄ āĻŦāĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°āĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ¨ā§ŸāĨ¤Â 

āĻāĻ•āĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻ° āĻŦāĻŋāĻļā§‡āĻˇāĻ¤ā§āĻŦ āĻāĻ‡ āĻ¯ā§‡, āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻāĻŦāĻ‚ āĻ°āĻŋ-āĻ‡āĻ‰āĻœā§‡āĻŦāĻ˛āĨ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦāĻž āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻĒāĻ° āĻĻā§āĻ‡āĻŸāĻŋ Angle Bracket <  > āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŸāĻžāĻ‡āĻĒ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻĄāĻŋāĻĢāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžā§ŸāĨ¤ āĻāĻŸāĻŋāĻ•ā§‡ āĻŸāĻžāĻ‡āĻĒ āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛āĻ“ āĻŦāĻ˛ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

				
					function identity<T>(arg: Type): T {
   return arg;
}
				
			

āĻāĻ–āĻžāĻ¨ā§‡ āĻŦā§āĻ°ā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻāĻ° āĻŽāĻžāĻā§‡ T āĻšāĻšā§āĻ›ā§‡ āĻŸāĻžāĻ‡āĻĒ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻŦāĻž āĻŸāĻžāĻ‡āĻĒ āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻŸāĻžāĻ‡āĻĒ āĻāĻ‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡ āĻĄāĻžāĻŸāĻž āĻŸāĻžāĻ‡āĻĒ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§‡ āĻŦāĻ˛ā§‡ āĻĻā§‡ā§ŸāĻž āĻ¯āĻžā§ŸāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

				
					let result1 = identity<number>(2); āĨ¤* T is number *āĨ¤
let result2 = identity<string>("Hello"); āĨ¤* T is string *āĨ¤
				
			

āĻāĻ–āĻžāĻ¨ā§‡ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻšā§āĻ›ā§‡ āĻŸāĻžāĻ‡āĻĒ āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ā§‡Â  āĻĄāĻŋāĻ•ā§āĻ˛āĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡Â  identity āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ¨āĻžāĻŽā§āĻŦāĻžāĻ° āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ‰āĻ­ā§Ÿ āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°Â  āĻ•āĻ°āĻž āĻšā§Ÿā§‡āĻ›ā§‡āĨ¤ āĻ†āĻšā§āĻ›āĻž, āĻ¤āĻŦā§‡ āĻāĻ•āĻŸāĻž āĻĒā§āĻ°āĻļā§āĻ¨ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĨā§‡āĻ•ā§‡āĻ‡ āĻ¯āĻžā§Ÿ āĻ¯ā§‡, āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡ any āĻŸāĻžāĻ‡āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°Â  āĻ•āĻ°āĻžÂ  āĻšā§Ÿ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¸ā§‡āĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻšāĻŦā§‡ āĻ•āĻŋ āĻ¨āĻž? āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ–ā§āĻŦāĻ‡ āĻšāĻŽā§ŽāĻ•āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨āĨ¤

any āĻŸāĻžāĻ‡āĻĒ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĄāĻžāĻŸāĻžÂ  āĻŸāĻžāĻ‡āĻĒ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°āĻ˛ā§‡āĻ“ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ•āĻŋ āĻŸāĻžāĻ‡āĻĒ āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°āĻŦā§‡ āĻ¸ā§‡āĻŸāĻŋ āĻ†āĻŽāĻ°āĻž āĻœāĻžāĻ¨āĻŋ āĻ¨āĻž āĻŦāĻž āĻ¨āĻŋā§ŸāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻžāĨ¤ āĻāĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻ•āĻ¨ā§āĻ¸ā§‡āĻĒā§āĻŸ-āĻāĻ° āĻ¨āĻŋā§ŸāĻŽ āĻ˛āĻ™ā§āĻ˜āĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ•āĻžāĻ°āĻŖā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ•ā§‹āĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ any  āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ˛ā§‡ āĻ¸ā§‡āĻŸāĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ°āĻŋ-āĻ‡āĻ‰āĻœā§‡āĻŦāĻ˛ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§‡āĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ•ā§‹āĻĄāĻŦā§‡āĻœ āĻŽā§‡āĻ‡āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨ā§‡āĻŦāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻ–ā§āĻŦāĻ‡ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ āĻ¤āĻžāĻ‡ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻŸāĻžāĻ‡āĻĒ āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ ( <T> ) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°Â  āĻ•āĻ°āĻŋ āĻ¯āĻž āĻ­ā§āĻ¯āĻžāĻ°āĻŋā§Ÿā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻ“āĻĒāĻ° āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤Â Â 

āĻ¤āĻŦā§‡ Array āĻŸāĻžāĻ‡āĻĒā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ†āĻ˛āĻĻāĻžāĻ­āĻžāĻŦā§‡ [  ] (āĻĨāĻžāĻ°ā§āĻĄ āĻŦā§āĻ°ā§āĻ¯āĻžāĻ•ā§‡āĻŸ)  āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻ¤ā§‡ āĻšā§ŸāĨ¤ āĻ¯ā§‡āĻŽāĻ¨,

				
					function identity<Type>(array: Type[]): Type[] {
   console.log(array.length);
   return array;
}

// An array of numbers
let numbers = [1, 2, 3];

// Call the generic function with number as the type parameter
let identityNumber = identity<number>(numbers);

// An array of strings
let strings = ["a", "b", "c"];

// Call the generic function with string as the type parameter
let identityStrings = identity<string>(strings);
				
			

āĻ•āĻžāĻ°āĻŖ Typescript āĻ āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒā§‡āĻļāĻžāĻ˛ āĻĄāĻžāĻŸāĻžÂ  āĻŸāĻžāĻ‡āĻĒ āĻ¯āĻž āĻāĻ•ā§‡āĻ° āĻ…āĻ§āĻŋāĻ• āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ  numerical indexing āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°Â  āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻŦāĻžāĻ° āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻāĻ­āĻžāĻŦā§‡āĻ“ āĻ˛ā§‡āĻ–āĻž āĻ¯āĻžā§Ÿ:

				
					function identity<Type>(arg: Array<Type>): Array<Type> {
   console.log(arg.length);
   return arg;
}
				
			

Array<Type> āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻŸāĻŋāĻ° āĻŽāĻ§ā§āĻ¯āĻ•āĻžāĻ° Element āĻ—ā§āĻ˛ā§‹āĻ° āĻŸāĻžāĻ‡āĻĒ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ­āĻžāĻŦā§‡ āĻŦāĻ˛ā§‡ āĻĻā§‡ā§ŸāĻž āĻ¯āĻžā§ŸāĨ¤