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 āϗ⧁āϞ⧋āϰ āϟāĻžāχāĻĒ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ­āĻžāĻŦ⧇ āĻŦāϞ⧇ āĻĻā§‡ā§ŸāĻž āϝāĻžā§ŸāĨ¤