{"id":81555,"date":"2024-10-26T16:01:01","date_gmt":"2024-10-26T12:31:01","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/"},"modified":"2024-10-26T16:01:01","modified_gmt":"2024-10-26T12:31:01","slug":"the-useless-type-calculator-in-typescript-f3c","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/","title":{"rendered":"\u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0646\u0648\u0639 \u0628\u06cc \u0641\u0627\u06cc\u062f\u0647 \u062f\u0631 \u062a\u0627\u06cc\u067e \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0632\u0645\u0627\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0628\u06cc \u0641\u0627\u06cc\u062f\u0647 \u062a\u0631\u06cc\u0646 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0627 \u0628\u0647 \u062d\u0627\u0644 \u0633\u0627\u062e\u062a\u0647 \u0627\u0645 &#8211; \u0686\u06cc\u0632\u06cc \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0639\u0642\u0644\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u0637\u0642 \u0627\u0632 \u0639\u0642\u0644\u0627\u0646\u06cc \u0628\u0648\u062f\u0646 \u0628\u0627\u0632 \u0645\u06cc \u0627\u06cc\u0633\u062a\u062f \u0648 \u062e\u0644\u0623 \u0648\u0627\u0642\u0639\u06cc\u062a \u0627\u0633\u062a. \u0632\u0645\u0627\u0646 \u0622\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 Typescript \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u062f\u0631 \u0648\u0628\u0644\u0627\u06af \u0645\u0646\u060c 5 \u0627\u06a9\u062a\u0628\u0631 2021 \u0627\u0631\u0633\u0627\u0644 \u0634\u062f: https:\/\/aamulumi.info\/Dev\/The-Useless-Type-Calculator-in-Typescript<\/p>\n<p>\u0686\u0646\u062f \u0631\u0648\u0632 \u067e\u06cc\u0634 \u06cc\u0627\u062f \u0628\u062d\u062b\u06cc \u0628\u0627 \u06cc\u06a9\u06cc \u0627\u0632 \u062f\u0648\u0633\u062a\u0627\u0646\u0645 \u062f\u0631 \u0645\u0648\u0631\u062f \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u06a9\u0627\u0645\u0644 \u062a\u0648\u0631\u06cc\u0646\u06af \u0627\u0641\u062a\u0627\u062f\u0645. \u0645\u0627 \u0645\u0642\u0627\u0644\u0647 \u0648\u06cc\u06a9\u06cc\u200c\u067e\u062f\u06cc\u0627 \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u06cc\u0645 \u0648 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u06cc\u0645 \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0686\u06cc\u0632\u0647\u0627 (\u0645\u0627\u0646\u0646\u062f \u0628\u0627\u0632\u06cc\u200c\u0647\u0627) \u0628\u0627 \u062a\u0648\u0631\u06cc\u0646\u06af \u06a9\u0627\u0645\u0644 \u0647\u0633\u062a\u0646\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0644\u0647\u060c Minecraft \u06a9\u0627\u0645\u0644 Turing \u0627\u0633\u062a\u060c Factorio \u0646\u06cc\u0632\u060c \u0642\u0644\u0639\u0647 \u06a9\u0648\u062a\u0648\u0644\u0647 \u0646\u06cc\u0632\u060c \u0648 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 Habbo Hotel \u0648 Magic: The Gathering (\u0628\u0644\u0647\u060c \u0628\u0627\u0632\u06cc \u06a9\u0627\u0631\u062a\u06cc) \u0646\u06cc\u0632 \u062a\u0648\u0631\u06cc\u0646\u06af \u06a9\u0627\u0645\u0644 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u06cc\u0645 \u06a9\u0647 \u0646\u0648\u0639 \u0633\u06cc\u0633\u062a\u0645 Typescript Turing-complete \u0627\u0633\u062a. \u0628\u0627 \u0627\u06cc\u0646 \u062f\u0627\u0646\u0634\u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0634\u0631\u0648\u0639 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u0686\u06cc\u0632\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0686\u06cc\u0632\u06cc \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u062f\u0647\u062f: \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0641\u0642\u0637 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 Typescript.<\/p>\n<p>\u0628\u0644\u0647. \u0627\u06cc\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u062d\u0645\u0642\u0627\u0646\u0647 \u062a\u0631\u06cc\u0646 \u0627\u06cc\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u062a\u06cc \u0628\u0647 \u0630\u0647\u0646\u0645 \u0631\u0633\u06cc\u062f. \u0627\u0645\u0627 \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u0645\u0631\u06cc\u0646 \u0633\u0631\u06af\u0631\u0645 \u06a9\u0646\u0646\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u062b\u0628\u0627\u062a \u0645\u0647\u0627\u0631\u062a \u0647\u0627\u06cc \u062e\u0648\u062f \u062f\u0631 \u062a\u0627\u06cc\u067e \u06a9\u0631\u062f\u0646 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<p>  \u0642\u0648\u0627\u0646\u06cc\u0646<\/p>\n<p>\u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f\u060c \u0642\u0648\u0627\u0646\u06cc\u0646 &#8220;\u0628\u0627\u0632\u06cc&#8221; \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a (\u0627\u06af\u0631 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u0631\u0627 \u06cc\u06a9 \u0628\u0627\u0632\u06cc \u0628\u0646\u0627\u0645\u06cc\u0645):<\/p>\n<p>\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0641\u0642\u0637 \u0628\u0627 \u062f\u0648 \u0646\u0648\u0639 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f: BZero (\u0628\u0631\u0627\u06cc Boolean Zero) \u0648 BOne (\u0628\u0631\u0627\u06cc Boolean One).<\/p>\n<p>type BZero = false;<br \/>\ntype BOne = true;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0634\u0645\u0627 \u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0628\u062f\u0648\u0646 \u0631\u0627\u0628\u0637\u060c \u0628\u062f\u0648\u0646 enum\u060c \u0641\u0642\u0637 \u0627\u0646\u0648\u0627\u0639.<br \/>\n\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0686\u0647\u0627\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0627\u0633\u0627\u0633\u06cc \u0631\u06cc\u0627\u0636\u06cc (\u0628\u0627 \u0627\u0646\u0648\u0627\u0639) \u0631\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u06a9\u0646\u06cc\u062f: \u062c\u0645\u0639\u060c \u062a\u0641\u0631\u06cc\u0642\u060c \u0636\u0631\u0628 \u0648 \u062a\u0642\u0633\u06cc\u0645. \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0627\u0698\u0648\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\n\u0627\u06cc\u0646 \u06a9\u062f \u0628\u0627\u06cc\u062f \u06a9\u0627\u0631 \u06a9\u0646\u062f:<\/p>\n<p>\/\/ Equivalent of (6 + 6 * (1 + 2)) \/ (6 &#8211; 2) = 6<br \/>\ntype StrangeOperation = Divide&lt;<br \/>\n  Add&lt;Multiply&lt;Six, Add&lt;One, Two&gt;&gt;, Six&gt;,<br \/>\n  Subtract&lt;Six, Two&gt;<br \/>\n&gt;;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0646\u062d\u0648\u0647 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628\u060c \u0627\u0632 \u0646\u0648\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 Result \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0646\u062a\u06cc\u062c\u0647:<\/p>\n<p>type OpResult = Result&lt;StrangeOperation&gt;;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u0646\u0648\u0639 \u062f\u0631 \u0642\u0648\u0627\u0646\u06cc\u0646 \u06a9\u0627\u0645\u0644\u0627 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0633\u062a. \u0627\u0645\u0627 \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0646\u0648\u0639 \u0639\u062f\u062f \u062f\u0642\u06cc\u0642 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<p>type OpResult = 6;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0648 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0634\u0645\u0627 \u0628\u0631\u0648\u06cc\u062f! \u0648\u0642\u062a \u0622\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0646\u06cc\u062f!<\/p>\n<p>&#8230;<\/p>\n<p>&#8230;<\/p>\n<p>&#8230;<\/p>\n<p>\u0628\u0644\u0647\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0631\u0627\u0647 \u062d\u0644 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646\u0637\u0648\u0631 \u0646\u06cc\u0633\u062a\u061f<\/p>\n<p>  \u0631\u0627\u0647 \u062d\u0644<\/p>\n<p>  \u0645\u0641\u0647\u0648\u0645<\/p>\n<p>\u062f\u0631 \u0627\u0628\u062a\u062f\u0627\u060c \u0645\u0646 \u062c\u0633\u062a\u062c\u0648 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0631\u0627\u0647 \u0647\u0627\u06cc \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u06cc\u06a9 \u0646\u0648\u0639 \u0639\u062f\u062f \u0627\u0632 \u06cc\u06a9 \u0646\u0648\u0639 \u062f\u0631 Typescript \u0686\u06cc\u0633\u062a. \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0639\u0645\u0644\u06cc\u0627\u062a \u067e\u0627\u06cc\u0647 \u062e\u0648\u062f \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f BZero \u0648 BOne \u0628\u0647 Zero \u0648 One \u0634\u0645\u0627\u0631\u0647 \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0627\u0646\u06cc\u062f<\/p>\n<p>\u0645\u0646 \u0686\u06cc\u0632\u06cc \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0634\u0627\u062e\u0635 \u0647\u0627\u06cc \u0622\u0631\u0627\u06cc\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0631\u062f\u0645\u060c \u0627\u0645\u0627 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0639\u062f\u062f \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0646 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u0645 \u06a9\u0647 \u062a\u0627\u067e\u0644 \u0647\u0627\u06cc Typescript \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9 \u0647\u0633\u062a\u0646\u062f length \u062f\u0627\u0631\u0627\u06cc\u06cc \u0648 \u0627\u0632 3.0 \u0628\u0627 \u062a\u0627\u067e\u0644 \u0647\u0627\u06cc \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u060c \u0645\u0646 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0646\u0648\u0634\u062a\u0646 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0628\u0631 \u0627\u0633\u0627\u0633 Tuples \u06a9\u0631\u062f\u0645.<\/p>\n<p>type TypeNumber = Array&lt;any&gt;;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u0648\u0644\u06cc\u0646 \u0627\u0646\u0648\u0627\u0639\u06cc \u06a9\u0647 \u0645\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 \u0639\u0628\u0627\u0631\u062a\u0646\u062f \u0627\u0632 Zero \u0648 One \u0628\u0631 \u0627\u0633\u0627\u0633 \u062a\u0627\u067e\u0644 \u0647\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u06cc\u06a9 \u0646\u0648\u0639 \u0634\u0631\u0637\u06cc \u0633\u0627\u062f\u0647 \u0645\u06cc \u0646\u0648\u06cc\u0633\u0645 \u06a9\u0647 \u06cc\u06a9 \u062a\u0627\u067e\u0644 \u0631\u0627 \u0628\u0627 \u062a\u0639\u062f\u0627\u062f \u0639\u0646\u0627\u0635\u0631 \u0645\u0639\u0627\u062f\u0644 \u0639\u062f\u062f\u06cc \u06a9\u0647 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<p>type ToTypeNumber&lt;A&gt; = A extends true ? [true] : [];<\/p>\n<p>type Zero = ToTypeNumber&lt;BZero&gt;;<br \/>\ntype One = ToTypeNumber&lt;BOne&gt;;<\/p>\n<p>\/\/ Result<br \/>\ntype Zero = [];<br \/>\ntype One = [true];<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0628\u0647 \u06cc\u06a9 \u062a\u0627\u06cc\u067e \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0637\u0648\u0644 \u062a\u0627\u067e\u0644 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0639\u062f\u062f \u0646\u0648\u0639 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0631\u0627 \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u0645.<\/p>\n<p>type Result&lt;A extends TypeNumber&gt; = A[&#8220;length&#8221;];<\/p>\n<p>\/\/ Example<br \/>\ntype C = Result&lt;One&gt;;<\/p>\n<p>\/\/ Result<br \/>\ntype C = 1;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0639\u0645\u0644\u06cc\u0627\u062a 1: \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062a\u0635\u0648\u0631\u060c Add type \u0628\u0647 \u0644\u0637\u0641 Typescript 4.0 \u0633\u0627\u062f\u0647 \u062a\u0631\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0633\u062a. \u0645\u0627 \u0628\u0627\u06cc\u062f \u062f\u0648 \u062a\u0627\u067e\u0644 \u0631\u0627 \u0628\u0647 \u0647\u0645 \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u0645 \u0648 \u06cc\u06a9 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u0645 Add \u0646\u0648\u0639<\/p>\n<p>type Add&lt;A extends TypeNumber, B extends TypeNumber&gt; = [&#8230;A, &#8230;B];<\/p>\n<p>\/\/ Example<br \/>\ntype Two = Add&lt;One, One&gt;;<br \/>\ntype TwoResult = Result&lt;Two&gt;;<br \/>\ntype Four = Add&lt;Two, Two&gt;;<br \/>\ntype FourResult = Result&lt;Four&gt;;<\/p>\n<p>\/\/ Result<br \/>\ntype Two = [true, true];<br \/>\ntype TwoResult = 2;<br \/>\ntype Four = [true, true, true, true];<br \/>\ntype FourResult = 4;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0639\u0645\u0644\u06cc\u0627\u062a 2: \u062a\u0641\u0631\u06cc\u0642<\/p>\n<p>  \u0631\u0627\u0647 \u0633\u062e\u062a<\/p>\n<p>\u062d\u0627\u0644\u0627\u060c \u0633\u0631\u06af\u0631\u0645\u06cc \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u067e\u0634\u062a \u062a\u0641\u0631\u06cc\u0642 \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u0645. \u067e\u0633 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0645\u062f\u0631\u0633\u0647 \u0627\u0628\u062a\u062f\u0627\u06cc\u06cc \u0628\u0631\u06af\u0631\u062f\u06cc\u0645.<\/p>\n<p>\u0645\u0646 6 \u0628\u0627\u062f\u06a9\u0646\u06a9 \u062f\u0627\u0631\u0645. \u0645\u0646 4 \u062a\u0627 \u0628\u0627\u062f\u06a9\u0646\u06a9 \u0628\u0647 \u0645\u0627\u0646\u0648 \u0645\u06cc\u062f\u0645. \u0627\u0644\u0627\u0646 2 \u0628\u0627\u062f\u06a9\u0646\u06a9 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0632 \u0646\u0638\u0631 \u062a\u0627\u067e\u0644 \u0647\u0627\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0634\u06a9\u0644 \u0631\u0627 \u0628\u0627 \u0627\u06cc\u0646 \u062a\u0648\u0636\u06cc\u062d \u062f\u0647\u06cc\u0645:<\/p>\n<p>type MyBalloons = [true, true, true, true, true, true];<br \/>\ntype NewManuBalloons = [true, true, true, true];<br \/>\ntype NewMyBalloons = [true, true];<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u062a\u0641\u0631\u06cc\u0642\u060c \u0647\u0631 \u0639\u0646\u0635\u0631 \u0631\u0627 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0645 MyBalloons \u06cc\u06a9\u06cc \u06cc\u06a9\u06cc \u0648 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0647\u0631 \u0639\u0646\u0635\u0631 \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631 NewManuBalloons. \u0648\u0642\u062a\u06cc \u0645\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0644\u062d\u0638\u0647 \u0645\u06cc \u0631\u0633\u0645 \u062f\u06cc\u06af\u0631 \u0639\u0646\u0635\u0631\u06cc \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f NewManuBallooons\u060c \u0645\u0646 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0646\u062a\u06cc\u062c\u0647 \u0622\u0646 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<p>\u0627\u0645\u0627 \u06cc\u06a9 \u0645\u0634\u06a9\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06cc\u06a9 \u062d\u0644\u0642\u0647 \u0627\u0633\u062a. \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0647 \u06cc\u06a9 \u062d\u0644\u0642\u0647 \u062f\u0631 Typescript \u0628\u0631\u0633\u06cc\u0645\u061f <\/p>\n<p>\u067e\u0627\u0633\u062e \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0648\u0639 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0627\u0633\u062a. \u0648 \u0628\u0627 \u06cc\u06a9 \u0634\u0631\u0637\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0646\u0648\u0639 \u0634\u0631\u0637\u06cc \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645. \u0627\u06cc\u0646 \u0647\u0645 \u06a9\u062f:<\/p>\n<p>type Subtract&lt;<br \/>\n  A extends TypeNumber,<br \/>\n  B extends TypeNumber,<br \/>\n  Res extends TypeNumber = []\n&gt; = A extends [boolean, &#8230;infer H]\n  ? B extends [boolean, &#8230;infer J]\n    ? Subtract&lt;H, J, Res&gt;<br \/>\n    : Subtract&lt;H, B, Add&lt;Res, One&gt;&gt;<br \/>\n  : Res;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u0648\u0647 \u0628\u0644\u0647\u060c \u0646\u06a9\u062a\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: \u0645\u0646 \u0627\u0632 \u0627\u0633\u062a\u0646\u062a\u0627\u062c \u0646\u0648\u0639 \u0628\u0631\u0627\u06cc \u062d\u0630\u0641 \u0639\u0646\u0627\u0635\u0631 \u06cc\u06a9 \u062a\u0627\u067e\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645. \u0645\u062b\u0644\u0627\u064b \u0627\u06af\u0631 \u062f\u0627\u0631\u0645 type A = [true, true, true]\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f type H = [true, true]. \u0627\u06cc\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0646 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0622\u06cc\u0627 A\u0627\u0648\u0644\u06cc\u0646 \u0639\u0646\u0635\u0631 \u06cc\u06a9 \u0628\u0648\u0644\u06cc \u0627\u0633\u062a \u0648 \u0645\u0646 \u0628\u0642\u06cc\u0647 \u062a\u0627\u067e\u0644 \u0631\u0627 \u062f\u0631 \u0645\u062a\u063a\u06cc\u0631 \u0646\u0648\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u0645.<\/p>\n<p>\u0645\u0646 \u0627\u0632 \u0627\u0633\u062a\u0646\u062a\u0627\u062c \u0646\u0648\u0639 \u062f\u0631 \u0634\u0631\u0637 \u062f\u0648\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u062a\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u0639\u0646\u0635\u0631 \u0641\u0639\u0644\u06cc \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631 B. \u0648\u0642\u062a\u06cc \u0639\u0646\u0635\u0631\u06cc \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f A \u0648 B\u060c \u0628\u0647 \u06cc\u0627\u062f \u0645\u06cc \u0622\u0648\u0631\u0645 Subtract \u0628\u0627 \u0639\u0646\u0627\u0635\u0631 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0632 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f A (H) \u0648 \u0639\u0646\u0627\u0635\u0631 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0632 B (J). \u0627\u06af\u0631 \u0639\u0646\u0635\u0631 \u062f\u06cc\u06af\u0631\u06cc \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f B\u060c \u0645\u0627 \u0628\u0647 \u062a\u0645\u0627\u0633 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u06cc\u0645 Subtract\u060c \u0627\u0645\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u06cc\u0645 Res \u062f\u0631 \u0647\u0631 \u062a\u0645\u0627\u0633 \u0648 \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc A \u062e\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u06cc\u0645 Res \u0646\u0648\u0639<\/p>\n<p>\u0648 \u0627\u06a9\u0646\u0648\u0646\u060c \u0645\u0627 \u06cc\u06a9 \u062a\u0641\u0631\u06cc\u0642 \u0641\u0642\u0637 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u0631\u06cc\u0645. \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u062a\u0641\u0631\u06cc\u0642 \u0641\u0642\u0637 \u0628\u0627 \u0627\u0639\u062f\u0627\u062f \u0635\u062d\u06cc\u062d \u0645\u062b\u0628\u062a \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0646\u0627\u0634\u06cc \u0627\u0632 \u062a\u0627\u067e\u0644 \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0628\u0644\u0647\u060c \u0634\u0645\u0627 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u067e\u0644 \u0628\u0627 \u0637\u0648\u0644 \u0645\u0646\u0641\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/p>\n<p>\/\/ Example<br \/>\ntype TwoFromSubtract = Subtract&lt;Four, Two&gt;;<br \/>\ntype TwoFromSubtractResult = Result&lt;TwoFromSubtract&gt;;<\/p>\n<p>\/\/ Result<br \/>\ntype TwoFromSubtract = [true, true];<br \/>\ntype TwoFromSubtractResult = 2;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0631\u0627\u0647 \u0647\u0648\u0634\u0645\u0646\u062f<\/p>\n<p>\u0631\u0627\u0647 \u0633\u062e\u062a \u0646\u0645\u0648\u0646\u0647 \u0646\u0627\u0628 \u0645\u0647\u0646\u062f\u0633\u06cc \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u0627\u0633\u062a. \u0632\u06cc\u0631\u0627 \u06cc\u06a9 \u0631\u0648\u0634 \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062a\u0641\u0631\u06cc\u0642 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: \u062a\u0641\u0631\u06cc\u0642 B \u0627\u0632 A \u0648 \u0646\u062a\u06cc\u062c\u0647 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062f\u0641\u0627\u0639 \u0627\u0632 \u062e\u0648\u062f\u0645\u060c \u0641\u0647\u0645\u06cc\u062f\u0645 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0627\u0632 \u0627\u0633\u062a\u0646\u062a\u0627\u062c \u0646\u0648\u0639 \u0628\u06cc\u0646 2 \u0646\u0648\u0639 \u067e\u0648\u06cc\u0627 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0631\u0648\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645 Divide. \u0627\u0645\u0627 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0631\u0627 \u0634\u0631\u0645\u0646\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0648 \u0627\u0634\u06a9\u0627\u0644\u06cc \u0646\u062f\u0627\u0631\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0647\u0645 \u06a9\u062f:<\/p>\n<p>type BetterSubtract&lt;A extends TypeNumber, B extends TypeNumber&gt; = A extends [<br \/>\n  &#8230;B,<br \/>\n  &#8230;infer Res<br \/>\n]\n  ? Res<br \/>\n  : Zero;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0639\u0645\u0644\u06cc\u0627\u062a 3: \u0636\u0631\u0628<\/p>\n<p>\u0645\u0627 \u0642\u0628\u0644\u0627\u064b \u062a\u0645\u0627\u0645 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0636\u0631\u0628 \u06a9\u0631\u062f\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 \u062f\u06cc\u062f\u0647 \u0627\u06cc\u0645. \u067e\u0633 \u0628\u0627\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 B \u0628\u0627\u0631 A \u0634\u0645\u0627\u0631\u0647 \u0627\u06cc\u0646 \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u062a\u06a9\u0647 \u06a9\u06cc\u06a9 \u0627\u0633\u062a \u0632\u06cc\u0631\u0627 \u062a\u0641\u0631\u06cc\u0642 \u0631\u0627\u0647 \u0633\u062e\u062a\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0636\u0631\u0628\u060c \u06cc\u06a9 \u062d\u0644\u0642\u0647 (\u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc) \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0644\u0642\u0647\u060c \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f One \u0627\u0632 B\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f A \u0628\u0647 \u0646\u062a\u06cc\u062c\u0647\u060c \u0648 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f Res \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc B \u0635\u0641\u0631 \u0627\u0633\u062a. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 A B-\u0628\u0627\u0631\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645 A x B.<\/p>\n<p>type Multiply&lt;A extends TypeNumber, B extends TypeNumber&gt; = B extends [<br \/>\n  boolean,<br \/>\n  &#8230;infer S<br \/>\n]\n  ? Add&lt;Multiply&lt;A, S&gt;, A&gt;<br \/>\n  : [];<\/p>\n<p>\/\/ Example<br \/>\ntype MultTest = Multiply&lt;Four, Six&gt;;<br \/>\ntype MultTestResult = Result&lt;MultTest&gt;;<\/p>\n<p>\/\/ Result<br \/>\ntype MultTest = [<br \/>\n  true,<br \/>\n  &#8230; 22 more,<br \/>\n  true<br \/>\n];<br \/>\ntype MultTestResult = 24;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0639\u0645\u0644\u06cc\u0627\u062a 4: \u062a\u0642\u0633\u06cc\u0645<\/p>\n<p>\u0645\u0627 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0628\u0627 \u0627\u0639\u062f\u0627\u062f \u0635\u062d\u06cc\u062d \u06a9\u0627\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u062a\u0642\u0633\u06cc\u0645 \u0627\u0642\u0644\u06cc\u062f\u0633\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645.<\/p>\n<p>\u062f\u0631 \u062a\u0641\u0631\u06cc\u0642\u060c if \u0631\u0627 \u062c\u0633\u062a\u062c\u0648 \u0645\u06cc \u06a9\u0646\u06cc\u0645 A \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0634\u0627\u0645\u0644 \u0634\u0648\u062f B \u0648 \u0622\u0646\u0686\u0647 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0633\u062a \u0645\u0627 \u0647\u0645\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f\u060c \u0628\u0627 \u0627\u06cc\u0646 \u062a\u0641\u0627\u0648\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0686\u0646\u062f \u0628\u0627\u0631 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u0645 A \u0634\u0627\u0645\u0644 B. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0647\u0645\u0627\u0646 \u0634\u0631\u0637 \u0627\u0648\u0644\u06cc\u0647 \u0631\u0627 \u0628\u0627 \u062a\u0641\u0631\u06cc\u0642 \u062f\u0627\u0631\u06cc\u0645\u060c \u0627\u0645\u0627 \u06cc\u06a9 \u0646\u0648\u0639 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0628\u0627 \u06cc\u06a9 \u0646\u062a\u06cc\u062c\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634\u06cc \u062f\u0631 \u0647\u0631 \u062a\u06a9\u0631\u0627\u0631 \u062d\u0644\u0642\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc A \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0634\u0627\u0645\u0644 \u0634\u0648\u062f B \u062f\u06cc\u06af\u0631\u060c \u062a\u0639\u062f\u0627\u062f \u062d\u0644\u0642\u0647 \u0647\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0631\u0627 \u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>type Divide&lt;<br \/>\n  A extends TypeNumber,<br \/>\n  B extends TypeNumber,<br \/>\n  Res extends TypeNumber = Zero<br \/>\n&gt; = A extends [&#8230;B, &#8230;infer T] ? Divide&lt;T, B, Add&lt;Res, One&gt;&gt; : Res;<\/p>\n<p>\/\/ Example<br \/>\ntype DivideTest = Divide&lt;MultTest, Six&gt;;<br \/>\ntype DivideTestResult = Result&lt;DivideTest&gt;;<br \/>\ntype DivideTest2 = Divide&lt;Six, Four&gt;;<br \/>\ntype DivideTest2Result = Result&lt;DivideTest2&gt;;<\/p>\n<p>\/\/ Result<br \/>\ntype DivideTest = [true, true, true, true];<br \/>\ntype DivideTestResult = 4;<br \/>\ntype DivideTest2 = [true];<br \/>\ntype DivideTest2Result = 1;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u067e\u0627\u062f\u0627\u0634 \u0639\u0645\u0644\u06cc\u0627\u062a: \u0645\u0627\u0698\u0648\u0644<\/p>\n<p>Modulo \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0647\u0645\u0627\u0646 Divide \u0627\u0633\u062a. \u0645\u0627 \u0686\u0646\u062f \u0628\u0627\u0631 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 A \u0634\u0627\u0645\u0644 B\u060c \u0648 \u0648\u0642\u062a\u06cc \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u06cc\u0645\u060c \u0628\u0647 \u062c\u0627\u06cc \u062a\u0639\u062f\u0627\u062f \u062a\u06a9\u0631\u0627\u0631\u060c \u0645\u0642\u062f\u0627\u0631 \u0628\u0627\u0642\u06cc\u0645\u0627\u0646\u062f\u0647 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u06cc\u0645. \u0648 tadaaaaaa\u060c \u0645\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u062f\u0648\u0644 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>type Modulo&lt;T extends TypeNumber, U extends TypeNumber&gt; = T extends [<br \/>\n  &#8230;U,<br \/>\n  &#8230;infer S<br \/>\n]\n  ? Modulo&lt;S, U&gt;<br \/>\n  : T;<\/p>\n<p>\/\/ Example<br \/>\ntype ModuloTest = Modulo&lt;MultTest, Six&gt;;<br \/>\ntype ModuloTestResult = Result&lt;ModuloTest&gt;;<br \/>\ntype ModuloTest2 = Modulo&lt;Six, Four&gt;;<br \/>\ntype ModuloTest2Result = Result&lt;ModuloTest2&gt;;<\/p>\n<p>\/\/ Result<br \/>\ntype ModuloTest = [];<br \/>\ntype ModuloTestResult = 0;<br \/>\ntype ModuloTest2 = [true, true];<br \/>\ntype ModuloTest2Result = 2;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 Typescript \u062f\u0627\u0631\u06cc\u0645. \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0627\u0639\u0634\u0627\u0631\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0648\u062f\u0648\u06cc\u06cc \u0627\u0639\u0634\u0627\u0631 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0645. \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0647 \u0648\u0636\u0648\u062d \u062f\u06cc\u0648\u0627\u0646\u06af\u06cc \u0627\u0633\u062a. \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u06cc\u0646 \u0642\u0637\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0645\u0627\u0646\u0646\u062f \u0645\u0646 \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u0622\u0646 \u0644\u0630\u062a \u0628\u0628\u0631\u06cc\u062f. \u0648 \u062f\u0631 \u0622\u062e\u0631\u060c \u0645\u0648\u0636\u0648\u0639 \u0628\u062d\u062b \u0627\u0648\u0644\u06cc\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u062f\u0648\u0633\u062a\u0645 \u062f\u0631 \u0645\u0648\u0631\u062f Turing-Complete Typescript \u062f\u0627\u0634\u062a\u0645.<\/p>\n<p>\u0628\u0627 \u062a\u0634\u06a9\u0631 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646! \u0627\u0632 \u0647\u0645\u0647 \u0645\u0627 \u0627\u06cc\u0646\u062c\u0627\u060c \u0645\u0646 \u0645\u06cc \u062e\u0648\u0627\u0647\u0645 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u0627\u062f \u0648 \u062e\u062f\u0627 \u062d\u0641\u0638 \u06a9\u0646\u062f\u060c \u062f\u0648\u0633\u062a \u0645\u0646! \ud83d\ude42<\/p>\n<div data-article-id=\"2059305\" id=\"article-body\">\n<p><em>\u0632\u0645\u0627\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0628\u06cc \u0641\u0627\u06cc\u062f\u0647 \u062a\u0631\u06cc\u0646 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0627 \u0628\u0647 \u062d\u0627\u0644 \u0633\u0627\u062e\u062a\u0647 \u0627\u0645 &#8211; \u0686\u06cc\u0632\u06cc \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0639\u0642\u0644\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u0637\u0642 \u0627\u0632 \u0639\u0642\u0644\u0627\u0646\u06cc \u0628\u0648\u062f\u0646 \u0628\u0627\u0632 \u0645\u06cc \u0627\u06cc\u0633\u062a\u062f \u0648 \u062e\u0644\u0623 \u0648\u0627\u0642\u0639\u06cc\u062a \u0627\u0633\u062a. \u0632\u0645\u0627\u0646 \u0622\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 Typescript \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/em><\/p>\n<hr\/>\n<p><em>\u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u062f\u0631 \u0648\u0628\u0644\u0627\u06af \u0645\u0646\u060c 5 \u0627\u06a9\u062a\u0628\u0631 2021 \u0627\u0631\u0633\u0627\u0644 \u0634\u062f: https:\/\/aamulumi.info\/Dev\/The-Useless-Type-Calculator-in-Typescript<\/em><\/p>\n<hr\/>\n<p>\u0686\u0646\u062f \u0631\u0648\u0632 \u067e\u06cc\u0634 \u06cc\u0627\u062f \u0628\u062d\u062b\u06cc \u0628\u0627 \u06cc\u06a9\u06cc \u0627\u0632 \u062f\u0648\u0633\u062a\u0627\u0646\u0645 \u062f\u0631 \u0645\u0648\u0631\u062f \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u06a9\u0627\u0645\u0644 \u062a\u0648\u0631\u06cc\u0646\u06af \u0627\u0641\u062a\u0627\u062f\u0645. \u0645\u0627 \u0645\u0642\u0627\u0644\u0647 \u0648\u06cc\u06a9\u06cc\u200c\u067e\u062f\u06cc\u0627 \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u06cc\u0645 \u0648 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u06cc\u0645 \u06a9\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0686\u06cc\u0632\u0647\u0627 (\u0645\u0627\u0646\u0646\u062f \u0628\u0627\u0632\u06cc\u200c\u0647\u0627) \u0628\u0627 \u062a\u0648\u0631\u06cc\u0646\u06af \u06a9\u0627\u0645\u0644 \u0647\u0633\u062a\u0646\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0644\u0647\u060c Minecraft \u06a9\u0627\u0645\u0644 Turing \u0627\u0633\u062a\u060c Factorio \u0646\u06cc\u0632\u060c \u0642\u0644\u0639\u0647 \u06a9\u0648\u062a\u0648\u0644\u0647 \u0646\u06cc\u0632\u060c \u0648 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 Habbo Hotel \u0648 Magic: The Gathering (\u0628\u0644\u0647\u060c \u0628\u0627\u0632\u06cc \u06a9\u0627\u0631\u062a\u06cc) \u0646\u06cc\u0632 \u062a\u0648\u0631\u06cc\u0646\u06af \u06a9\u0627\u0645\u0644 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u06cc\u0645 \u06a9\u0647 \u0646\u0648\u0639 \u0633\u06cc\u0633\u062a\u0645 Typescript Turing-complete \u0627\u0633\u062a. \u0628\u0627 \u0627\u06cc\u0646 \u062f\u0627\u0646\u0634\u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0634\u0631\u0648\u0639 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u0686\u06cc\u0632\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0686\u06cc\u0632\u06cc \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0646\u062f\u0647\u062f: \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0641\u0642\u0637 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 Typescript.<\/p>\n<p><\/p>\n<p>\u0628\u0644\u0647. \u0627\u06cc\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u062d\u0645\u0642\u0627\u0646\u0647 \u062a\u0631\u06cc\u0646 \u0627\u06cc\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u062a\u06cc \u0628\u0647 \u0630\u0647\u0646\u0645 \u0631\u0633\u06cc\u062f. \u0627\u0645\u0627 \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u0645\u0631\u06cc\u0646 \u0633\u0631\u06af\u0631\u0645 \u06a9\u0646\u0646\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u062b\u0628\u0627\u062a \u0645\u0647\u0627\u0631\u062a \u0647\u0627\u06cc \u062e\u0648\u062f \u062f\u0631 \u062a\u0627\u06cc\u067e \u06a9\u0631\u062f\u0646 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D9%82%D9%88%D8%A7%D9%86%DB%8C%D9%86\" >\u0642\u0648\u0627\u0646\u06cc\u0646<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D8%B1%D8%A7%D9%87_%D8%AD%D9%84\" >\u0631\u0627\u0647 \u062d\u0644<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D9%85%D9%81%D9%87%D9%88%D9%85\" >\u0645\u0641\u0647\u0648\u0645<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_1_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86\" >\u0639\u0645\u0644\u06cc\u0627\u062a 1: \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_2_%D8%AA%D9%81%D8%B1%DB%8C%D9%82\" >\u0639\u0645\u0644\u06cc\u0627\u062a 2: \u062a\u0641\u0631\u06cc\u0642<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D8%B1%D8%A7%D9%87_%D8%B3%D8%AE%D8%AA\" >\u0631\u0627\u0647 \u0633\u062e\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D8%B1%D8%A7%D9%87_%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF\" >\u0631\u0627\u0647 \u0647\u0648\u0634\u0645\u0646\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_3_%D8%B6%D8%B1%D8%A8\" >\u0639\u0645\u0644\u06cc\u0627\u062a 3: \u0636\u0631\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_4_%D8%AA%D9%82%D8%B3%DB%8C%D9%85\" >\u0639\u0645\u0644\u06cc\u0627\u062a 4: \u062a\u0642\u0633\u06cc\u0645<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/the-useless-type-calculator-in-typescript-f3c\/#%D9%BE%D8%A7%D8%AF%D8%A7%D8%B4_%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%85%D8%A7%DA%98%D9%88%D9%84\" >\u067e\u0627\u062f\u0627\u0634 \u0639\u0645\u0644\u06cc\u0627\u062a: \u0645\u0627\u0698\u0648\u0644<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%82%D9%88%D8%A7%D9%86%DB%8C%D9%86\"><\/span>\n<p>  \u0642\u0648\u0627\u0646\u06cc\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f\u060c \u0642\u0648\u0627\u0646\u06cc\u0646 &#8220;\u0628\u0627\u0632\u06cc&#8221; \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a (\u0627\u06af\u0631 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u0631\u0627 \u06cc\u06a9 \u0628\u0627\u0632\u06cc \u0628\u0646\u0627\u0645\u06cc\u0645):<\/p>\n<ul>\n<li>\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0641\u0642\u0637 \u0628\u0627 \u062f\u0648 \u0646\u0648\u0639 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f: <code>BZero<\/code> (\u0628\u0631\u0627\u06cc Boolean Zero) \u0648 <code>BOne<\/code> (\u0628\u0631\u0627\u06cc Boolean One).\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">BZero<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">false<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">BOne<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">true<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u0634\u0645\u0627 \u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0628\u062f\u0648\u0646 \u0631\u0627\u0628\u0637\u060c \u0628\u062f\u0648\u0646 enum\u060c \u0641\u0642\u0637 \u0627\u0646\u0648\u0627\u0639.<\/li>\n<li>\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0686\u0647\u0627\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0627\u0633\u0627\u0633\u06cc \u0631\u06cc\u0627\u0636\u06cc (\u0628\u0627 \u0627\u0646\u0648\u0627\u0639) \u0631\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u06a9\u0646\u06cc\u062f: \u062c\u0645\u0639\u060c \u062a\u0641\u0631\u06cc\u0642\u060c \u0636\u0631\u0628 \u0648 \u062a\u0642\u0633\u06cc\u0645. \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0627\u0698\u0648\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0627\u06cc\u0646 \u06a9\u062f \u0628\u0627\u06cc\u062f \u06a9\u0627\u0631 \u06a9\u0646\u062f:\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ Equivalent of (6 + 6 * (1 + 2)) \/ (6 - 2) = 6<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">StrangeOperation<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Divide<\/span><span class=\"o\">&lt;<\/span>\n  <span class=\"nx\">Add<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Multiply<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Six<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Add<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">One<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Two<\/span><span class=\"o\">&gt;&gt;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Six<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">Subtract<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Six<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Two<\/span><span class=\"o\">&gt;<\/span>\n<span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0646\u062d\u0648\u0647 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628\u060c \u0627\u0632 \u0646\u0648\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 <code>Result<\/code> \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0646\u062a\u06cc\u062c\u0647:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">OpResult<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">StrangeOperation<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0646\u0648\u0639 \u062f\u0631 \u0642\u0648\u0627\u0646\u06cc\u0646 \u06a9\u0627\u0645\u0644\u0627 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0633\u062a. \u0627\u0645\u0627 \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0646\u0648\u0639 \u0639\u062f\u062f \u062f\u0642\u06cc\u0642 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">OpResult<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">6<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0634\u0645\u0627 \u0628\u0631\u0648\u06cc\u062f! \u0648\u0642\u062a \u0622\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0646\u06cc\u062f!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faamulumi.info%2F_assets%2Farticles%2Ftype-calculator%2Fletsgo.webp\" alt=\"\u062a\u0635\u0648\u06cc\u0631\u06cc \u0645\u062a\u062d\u0631\u06a9 \u0627\u0632 \u062f\u062e\u062a\u0631\u06cc \u06a9\u0647 \u062f\u0633\u062a\u200c\u0647\u0627\u06cc\u0634 \u0631\u0627 \u06a9\u0641 \u0645\u06cc\u200c\u0632\u0646\u062f \u0648 \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u00ab\u0628\u0631\u06cc\u0645!\u00bb\" loading=\"lazy\" width=\"480\" height=\"267\" title=\"\"><br \/>&#8230;<\/p>\n<p>&#8230;<\/p>\n<p>&#8230;<\/p>\n<p>\u0628\u0644\u0647\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0631\u0627\u0647 \u062d\u0644 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646\u0637\u0648\u0631 \u0646\u06cc\u0633\u062a\u061f<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faamulumi.info%2F_assets%2Farticles%2Ftype-calculator%2Fsmart.webp\" alt=\"\u062a\u0635\u0648\u06cc\u0631\u06cc \u0645\u062a\u062d\u0631\u06a9 \u0627\u0632 \u0645\u0631\u062f\u06cc \u06a9\u0647 \u0628\u0647 \u0631\u0648\u0634\u06cc \u0647\u0648\u0634\u0645\u0646\u062f\u0627\u0646\u0647 \u06cc\u0627\u0628 \u062e\u0648\u062f \u0631\u0627 \u0631\u0648\u06cc \u0633\u0631 \u062e\u0648\u062f \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.\" loading=\"lazy\" width=\"480\" height=\"264\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%AD%D9%84\"><\/span>\n<p>  \u0631\u0627\u0647 \u062d\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D9%81%D9%87%D9%88%D9%85\"><\/span>\n<p>  \u0645\u0641\u0647\u0648\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0627\u0628\u062a\u062f\u0627\u060c \u0645\u0646 \u062c\u0633\u062a\u062c\u0648 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0631\u0627\u0647 \u0647\u0627\u06cc \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u06cc\u06a9 \u0646\u0648\u0639 \u0639\u062f\u062f \u0627\u0632 \u06cc\u06a9 \u0646\u0648\u0639 \u062f\u0631 Typescript \u0686\u06cc\u0633\u062a. \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0639\u0645\u0644\u06cc\u0627\u062a \u067e\u0627\u06cc\u0647 \u062e\u0648\u062f \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f <code>BZero<\/code> \u0648 <code>BOne<\/code> \u0628\u0647 <code>Zero<\/code> \u0648 <code>One<\/code> \u0634\u0645\u0627\u0631\u0647 \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0627\u0646\u06cc\u062f<\/p>\n<p>\u0645\u0646 \u0686\u06cc\u0632\u06cc \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0634\u0627\u062e\u0635 \u0647\u0627\u06cc \u0622\u0631\u0627\u06cc\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0631\u062f\u0645\u060c \u0627\u0645\u0627 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0639\u062f\u062f \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0646 \u0645\u062a\u0648\u062c\u0647 \u0634\u062f\u0645 \u06a9\u0647 \u062a\u0627\u067e\u0644 \u0647\u0627\u06cc Typescript \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9 \u0647\u0633\u062a\u0646\u062f <code>length<\/code> \u062f\u0627\u0631\u0627\u06cc\u06cc \u0648 \u0627\u0632 3.0 \u0628\u0627 \u062a\u0627\u067e\u0644 \u0647\u0627\u06cc \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0627 \u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u060c \u0645\u0646 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0646\u0648\u0634\u062a\u0646 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0628\u0631 \u0627\u0633\u0627\u0633 Tuples \u06a9\u0631\u062f\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">TypeNumber<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">Array<\/span><span class=\"o\">&lt;<\/span><span class=\"kr\">any<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0648\u0644\u06cc\u0646 \u0627\u0646\u0648\u0627\u0639\u06cc \u06a9\u0647 \u0645\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 \u0639\u0628\u0627\u0631\u062a\u0646\u062f \u0627\u0632 <code>Zero<\/code> \u0648 <code>One<\/code> \u0628\u0631 \u0627\u0633\u0627\u0633 \u062a\u0627\u067e\u0644 \u0647\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u06cc\u06a9 \u0646\u0648\u0639 \u0634\u0631\u0637\u06cc \u0633\u0627\u062f\u0647 \u0645\u06cc \u0646\u0648\u06cc\u0633\u0645 \u06a9\u0647 \u06cc\u06a9 \u062a\u0627\u067e\u0644 \u0631\u0627 \u0628\u0627 \u062a\u0639\u062f\u0627\u062f \u0639\u0646\u0627\u0635\u0631 \u0645\u0639\u0627\u062f\u0644 \u0639\u062f\u062f\u06cc \u06a9\u0647 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">ToTypeNumber<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">A<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">?<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">]<\/span> <span class=\"p\">:<\/span> <span class=\"p\">[];<\/span>\n\n<span class=\"kd\">type<\/span> <span class=\"nx\">Zero<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ToTypeNumber<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">BZero<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">One<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ToTypeNumber<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">BOne<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Result<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">Zero<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">One<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0628\u0647 \u06cc\u06a9 \u062a\u0627\u06cc\u067e \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0637\u0648\u0644 \u062a\u0627\u067e\u0644 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 \u062a\u0627 \u0639\u062f\u062f \u0646\u0648\u0639 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0631\u0627 \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">A<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">length<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n\n<span class=\"c1\">\/\/ Example<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">C<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">One<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Result<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">C<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_1_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86\"><\/span>\n<p>  \u0639\u0645\u0644\u06cc\u0627\u062a 1: \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062a\u0635\u0648\u0631\u060c <code>Add<\/code> type \u0628\u0647 \u0644\u0637\u0641 Typescript 4.0 \u0633\u0627\u062f\u0647 \u062a\u0631\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0633\u062a. \u0645\u0627 \u0628\u0627\u06cc\u062f \u062f\u0648 \u062a\u0627\u067e\u0644 \u0631\u0627 \u0628\u0647 \u0647\u0645 \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u0645 \u0648 \u06cc\u06a9 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u0645 <code>Add<\/code> \u0646\u0648\u0639<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">Add<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"p\">,<\/span> <span class=\"nx\">B<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[...<\/span><span class=\"nx\">A<\/span><span class=\"p\">,<\/span> <span class=\"p\">...<\/span><span class=\"nx\">B<\/span><span class=\"p\">];<\/span>\n\n<span class=\"c1\">\/\/ Example<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">Two<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Add<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">One<\/span><span class=\"p\">,<\/span> <span class=\"nx\">One<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">TwoResult<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Two<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">Four<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Add<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Two<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Two<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">FourResult<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Four<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Result<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">Two<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">TwoResult<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">Four<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">FourResult<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">4<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faamulumi.info%2F_assets%2Farticles%2Ftype-calculator%2Fnotthathard.webp\" alt=\"\u062a\u0635\u0648\u06cc\u0631\u06cc \u0645\u062a\u062d\u0631\u06a9 \u0627\u0632 \u0622\u0648\u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u06cc\u0644\u06cc \u0627\u0644\u06cc\u0634 \" loading=\"lazy\" width=\"480\" height=\"267\" title=\"\"><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_2_%D8%AA%D9%81%D8%B1%DB%8C%D9%82\"><\/span>\n<p>  \u0639\u0645\u0644\u06cc\u0627\u062a 2: \u062a\u0641\u0631\u06cc\u0642<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%B3%D8%AE%D8%AA\"><\/span>\n<p>  \u0631\u0627\u0647 \u0633\u062e\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u062d\u0627\u0644\u0627\u060c \u0633\u0631\u06af\u0631\u0645\u06cc \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u067e\u0634\u062a \u062a\u0641\u0631\u06cc\u0642 \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u0645. \u067e\u0633 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0645\u062f\u0631\u0633\u0647 \u0627\u0628\u062a\u062f\u0627\u06cc\u06cc \u0628\u0631\u06af\u0631\u062f\u06cc\u0645.<\/p>\n<p>\u0645\u0646 6 \u0628\u0627\u062f\u06a9\u0646\u06a9 \u062f\u0627\u0631\u0645. \u0645\u0646 4 \u062a\u0627 \u0628\u0627\u062f\u06a9\u0646\u06a9 \u0628\u0647 \u0645\u0627\u0646\u0648 \u0645\u06cc\u062f\u0645. \u0627\u0644\u0627\u0646 2 \u0628\u0627\u062f\u06a9\u0646\u06a9 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0632 \u0646\u0638\u0631 \u062a\u0627\u067e\u0644 \u0647\u0627\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0634\u06a9\u0644 \u0631\u0627 \u0628\u0627 \u0627\u06cc\u0646 \u062a\u0648\u0636\u06cc\u062d \u062f\u0647\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">MyBalloons<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">NewManuBalloons<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">NewMyBalloons<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u062a\u0641\u0631\u06cc\u0642\u060c \u0647\u0631 \u0639\u0646\u0635\u0631 \u0631\u0627 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0645 <code>MyBalloons<\/code> \u06cc\u06a9\u06cc \u06cc\u06a9\u06cc \u0648 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0647\u0631 \u0639\u0646\u0635\u0631 \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631 <code>NewManuBalloons<\/code>. \u0648\u0642\u062a\u06cc \u0645\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0644\u062d\u0638\u0647 \u0645\u06cc \u0631\u0633\u0645 \u062f\u06cc\u06af\u0631 \u0639\u0646\u0635\u0631\u06cc \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f <code>NewManuBallooons<\/code>\u060c \u0645\u0646 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0646\u062a\u06cc\u062c\u0647 \u0622\u0646 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<p>\u0627\u0645\u0627 \u06cc\u06a9 \u0645\u0634\u06a9\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06cc\u06a9 \u062d\u0644\u0642\u0647 \u0627\u0633\u062a. \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0647 \u06cc\u06a9 \u062d\u0644\u0642\u0647 \u062f\u0631 Typescript \u0628\u0631\u0633\u06cc\u0645\u061f <\/p>\n<p>\u067e\u0627\u0633\u062e \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0648\u0639 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0627\u0633\u062a. \u0648 \u0628\u0627 \u06cc\u06a9 \u0634\u0631\u0637\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0646\u0648\u0639 \u0634\u0631\u0637\u06cc \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645. \u0627\u06cc\u0646 \u0647\u0645 \u06a9\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">Subtract<\/span><span class=\"o\">&lt;<\/span>\n  <span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">B<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">Res<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[]<\/span>\n<span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"p\">[<\/span><span class=\"nx\">boolean<\/span><span class=\"p\">,<\/span> <span class=\"p\">...<\/span><span class=\"nx\">infer<\/span> <span class=\"nx\">H<\/span><span class=\"p\">]<\/span>\n  <span class=\"p\">?<\/span> <span class=\"nx\">B<\/span> <span class=\"kd\">extends<\/span> <span class=\"p\">[<\/span><span class=\"nx\">boolean<\/span><span class=\"p\">,<\/span> <span class=\"p\">...<\/span><span class=\"nx\">infer<\/span> <span class=\"nx\">J<\/span><span class=\"p\">]<\/span>\n    <span class=\"p\">?<\/span> <span class=\"nx\">Subtract<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">H<\/span><span class=\"p\">,<\/span> <span class=\"nx\">J<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Res<\/span><span class=\"o\">&gt;<\/span>\n    <span class=\"p\">:<\/span> <span class=\"nx\">Subtract<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">H<\/span><span class=\"p\">,<\/span> <span class=\"nx\">B<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Add<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Res<\/span><span class=\"p\">,<\/span> <span class=\"nx\">One<\/span><span class=\"o\">&gt;&gt;<\/span>\n  <span class=\"p\">:<\/span> <span class=\"nx\">Res<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faamulumi.info%2F_assets%2Farticles%2Ftype-calculator%2Fwhatthe.webp\" alt=\"\u062a\u0635\u0648\u06cc\u0631\u06cc \u0645\u062a\u062d\u0631\u06a9 \u0627\u0632 \u0645\u0631\u062f\u06cc \u06a9\u0647 \u0686\u0634\u0645\u0627\u0646\u0634 \u0631\u0627 \u06a9\u0627\u0645\u0644\u0627 \u0628\u0627\u0632 \u0645\u06cc \u06a9\u0646\u062f.\" loading=\"lazy\" width=\"480\" height=\"400\" title=\"\"><\/p>\n<p>\u0627\u0648\u0647 \u0628\u0644\u0647\u060c \u0646\u06a9\u062a\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: \u0645\u0646 \u0627\u0632 \u0627\u0633\u062a\u0646\u062a\u0627\u062c \u0646\u0648\u0639 \u0628\u0631\u0627\u06cc \u062d\u0630\u0641 \u0639\u0646\u0627\u0635\u0631 \u06cc\u06a9 \u062a\u0627\u067e\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645. \u0645\u062b\u0644\u0627\u064b \u0627\u06af\u0631 \u062f\u0627\u0631\u0645 <code>type A = [true, true, true]<\/code>\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f <code>type H = [true, true]<\/code>. \u0627\u06cc\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0646 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0622\u06cc\u0627 <code>A<\/code>\u0627\u0648\u0644\u06cc\u0646 \u0639\u0646\u0635\u0631 \u06cc\u06a9 \u0628\u0648\u0644\u06cc \u0627\u0633\u062a \u0648 \u0645\u0646 \u0628\u0642\u06cc\u0647 \u062a\u0627\u067e\u0644 \u0631\u0627 \u062f\u0631 \u0645\u062a\u063a\u06cc\u0631 \u0646\u0648\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u0645.<\/p>\n<p>\u0645\u0646 \u0627\u0632 \u0627\u0633\u062a\u0646\u062a\u0627\u062c \u0646\u0648\u0639 \u062f\u0631 \u0634\u0631\u0637 \u062f\u0648\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u062a\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u0639\u0646\u0635\u0631 \u0641\u0639\u0644\u06cc \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631 <code>B<\/code>. \u0648\u0642\u062a\u06cc \u0639\u0646\u0635\u0631\u06cc \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f <code>A<\/code> \u0648 <code>B<\/code>\u060c \u0628\u0647 \u06cc\u0627\u062f \u0645\u06cc \u0622\u0648\u0631\u0645 <code>Subtract<\/code> \u0628\u0627 \u0639\u0646\u0627\u0635\u0631 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0632 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f <code>A<\/code> (<code>H<\/code>) \u0648 \u0639\u0646\u0627\u0635\u0631 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0632 <code>B<\/code> (<code>J<\/code>). \u0627\u06af\u0631 \u0639\u0646\u0635\u0631 \u062f\u06cc\u06af\u0631\u06cc \u062f\u0631 \u0622\u0646 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f <code>B<\/code>\u060c \u0645\u0627 \u0628\u0647 \u062a\u0645\u0627\u0633 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u06cc\u0645 <code>Subtract<\/code>\u060c \u0627\u0645\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u06cc\u0645 <code>Res<\/code> \u062f\u0631 \u0647\u0631 \u062a\u0645\u0627\u0633 \u0648 \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc <code>A<\/code> \u062e\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u06cc\u0645 <code>Res<\/code> \u0646\u0648\u0639<\/p>\n<p>\u0648 \u0627\u06a9\u0646\u0648\u0646\u060c \u0645\u0627 \u06cc\u06a9 \u062a\u0641\u0631\u06cc\u0642 \u0641\u0642\u0637 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u0631\u06cc\u0645. \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u062a\u0641\u0631\u06cc\u0642 \u0641\u0642\u0637 \u0628\u0627 \u0627\u0639\u062f\u0627\u062f \u0635\u062d\u06cc\u062d \u0645\u062b\u0628\u062a \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0646\u0627\u0634\u06cc \u0627\u0632 \u062a\u0627\u067e\u0644 \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0628\u0644\u0647\u060c \u0634\u0645\u0627 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u067e\u0644 \u0628\u0627 \u0637\u0648\u0644 \u0645\u0646\u0641\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ Example<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">TwoFromSubtract<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Subtract<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Four<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Two<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">TwoFromSubtractResult<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">TwoFromSubtract<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Result<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">TwoFromSubtract<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">TwoFromSubtractResult<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF\"><\/span>\n<p>  \u0631\u0627\u0647 \u0647\u0648\u0634\u0645\u0646\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0631\u0627\u0647 \u0633\u062e\u062a \u0646\u0645\u0648\u0646\u0647 \u0646\u0627\u0628 \u0645\u0647\u0646\u062f\u0633\u06cc \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u0627\u0633\u062a. \u0632\u06cc\u0631\u0627 \u06cc\u06a9 \u0631\u0648\u0634 \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062a\u0641\u0631\u06cc\u0642 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f: \u062a\u0641\u0631\u06cc\u0642 <code>B<\/code> \u0627\u0632 <code>A<\/code> \u0648 \u0646\u062a\u06cc\u062c\u0647 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062f\u0641\u0627\u0639 \u0627\u0632 \u062e\u0648\u062f\u0645\u060c \u0641\u0647\u0645\u06cc\u062f\u0645 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0627\u0632 \u0627\u0633\u062a\u0646\u062a\u0627\u062c \u0646\u0648\u0639 \u0628\u06cc\u0646 2 \u0646\u0648\u0639 \u067e\u0648\u06cc\u0627 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0631\u0648\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645 <code>Divide<\/code>. \u0627\u0645\u0627 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0631\u0627 \u0634\u0631\u0645\u0646\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0648 \u0627\u0634\u06a9\u0627\u0644\u06cc \u0646\u062f\u0627\u0631\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0647\u0645 \u06a9\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">BetterSubtract<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"p\">,<\/span> <span class=\"nx\">B<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"p\">[<\/span>\n  <span class=\"p\">...<\/span><span class=\"nx\">B<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">...<\/span><span class=\"nx\">infer<\/span> <span class=\"nx\">Res<\/span>\n<span class=\"p\">]<\/span>\n  <span class=\"p\">?<\/span> <span class=\"nx\">Res<\/span>\n  <span class=\"p\">:<\/span> <span class=\"nx\">Zero<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faamulumi.info%2F_assets%2Farticles%2Ftype-calculator%2Fokay2.webp\" alt=\"\u062a\u0635\u0648\u06cc\u0631 \u0645\u062a\u062d\u0631\u06a9 \u0645\u0631\u062f\u06cc \u06a9\u0647 \u0628\u0627 \u0627\u0646\u06af\u0634\u062a \u0633\u0631\u0634 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f (\u0628\u0647 \u0631\u0648\u0634\u06cc \u0647\u0648\u0634\u0645\u0646\u062f\u0627\u0646\u0647).\" loading=\"lazy\" width=\"338\" height=\"300\" title=\"\"><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_3_%D8%B6%D8%B1%D8%A8\"><\/span>\n<p>  \u0639\u0645\u0644\u06cc\u0627\u062a 3: \u0636\u0631\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0645\u0627 \u0642\u0628\u0644\u0627\u064b \u062a\u0645\u0627\u0645 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0636\u0631\u0628 \u06a9\u0631\u062f\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 \u062f\u06cc\u062f\u0647 \u0627\u06cc\u0645. \u067e\u0633 \u0628\u0627\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 <code>B<\/code> \u0628\u0627\u0631 <code>A<\/code> \u0634\u0645\u0627\u0631\u0647 \u0627\u06cc\u0646 \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u062a\u06a9\u0647 \u06a9\u06cc\u06a9 \u0627\u0633\u062a \u0632\u06cc\u0631\u0627 \u062a\u0641\u0631\u06cc\u0642 \u0631\u0627\u0647 \u0633\u062e\u062a\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0636\u0631\u0628\u060c \u06cc\u06a9 \u062d\u0644\u0642\u0647 (\u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc) \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0644\u0642\u0647\u060c \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f <code>One<\/code> \u0627\u0632 <code>B<\/code>\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>A<\/code> \u0628\u0647 \u0646\u062a\u06cc\u062c\u0647\u060c \u0648 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f <code>Res<\/code> \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc <code>B<\/code> \u0635\u0641\u0631 \u0627\u0633\u062a. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>A<\/code> <code>B<\/code>-\u0628\u0627\u0631\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645 <code>A<\/code> x <code>B<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">Multiply<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"p\">,<\/span> <span class=\"nx\">B<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">B<\/span> <span class=\"kd\">extends<\/span> <span class=\"p\">[<\/span>\n  <span class=\"nx\">boolean<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">...<\/span><span class=\"nx\">infer<\/span> <span class=\"nx\">S<\/span>\n<span class=\"p\">]<\/span>\n  <span class=\"p\">?<\/span> <span class=\"nx\">Add<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Multiply<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">A<\/span><span class=\"p\">,<\/span> <span class=\"nx\">S<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">A<\/span><span class=\"o\">&gt;<\/span>\n  <span class=\"p\">:<\/span> <span class=\"p\">[];<\/span>\n\n<span class=\"c1\">\/\/ Example<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">MultTest<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Multiply<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Four<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Six<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">MultTestResult<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">MultTest<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Result<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">MultTest<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n  <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">...<\/span> <span class=\"mi\">22<\/span> <span class=\"nx\">more<\/span><span class=\"p\">,<\/span>\n  <span class=\"kc\">true<\/span>\n<span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">MultTestResult<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">24<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faamulumi.info%2F_assets%2Farticles%2Ftype-calculator%2Fokay3.webp\" alt=\"\u062a\u0635\u0648\u06cc\u0631\u06cc \u0645\u062a\u062d\u0631\u06a9 \u0627\u0632 \u0632\u0646\u06cc \u06a9\u0647 \u0633\u0631\u0634 \u0631\u0627 \u0645\u0627\u0646\u0646\u062f \u00ab\u0627\u0648\u0647 \u062e\u06cc\u0644\u06cc \u062e\u0648\u0628\u00bb \u062e\u0645 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a\" loading=\"lazy\" width=\"500\" height=\"267\" title=\"\"><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_4_%D8%AA%D9%82%D8%B3%DB%8C%D9%85\"><\/span>\n<p>  \u0639\u0645\u0644\u06cc\u0627\u062a 4: \u062a\u0642\u0633\u06cc\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0645\u0627 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0628\u0627 \u0627\u0639\u062f\u0627\u062f \u0635\u062d\u06cc\u062d \u06a9\u0627\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u062a\u0642\u0633\u06cc\u0645 \u0627\u0642\u0644\u06cc\u062f\u0633\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645.<\/p>\n<p>\u062f\u0631 \u062a\u0641\u0631\u06cc\u0642\u060c if \u0631\u0627 \u062c\u0633\u062a\u062c\u0648 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>A<\/code> \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0634\u0627\u0645\u0644 \u0634\u0648\u062f <code>B<\/code> \u0648 \u0622\u0646\u0686\u0647 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0633\u062a \u0645\u0627 \u0647\u0645\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f\u060c \u0628\u0627 \u0627\u06cc\u0646 \u062a\u0641\u0627\u0648\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0686\u0646\u062f \u0628\u0627\u0631 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u0645 <code>A<\/code> \u0634\u0627\u0645\u0644 <code>B<\/code>. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0647\u0645\u0627\u0646 \u0634\u0631\u0637 \u0627\u0648\u0644\u06cc\u0647 \u0631\u0627 \u0628\u0627 \u062a\u0641\u0631\u06cc\u0642 \u062f\u0627\u0631\u06cc\u0645\u060c \u0627\u0645\u0627 \u06cc\u06a9 \u0646\u0648\u0639 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0628\u0627 \u06cc\u06a9 \u0646\u062a\u06cc\u062c\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634\u06cc \u062f\u0631 \u0647\u0631 \u062a\u06a9\u0631\u0627\u0631 \u062d\u0644\u0642\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc <code>A<\/code> \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0634\u0627\u0645\u0644 \u0634\u0648\u062f <code>B<\/code> \u062f\u06cc\u06af\u0631\u060c \u062a\u0639\u062f\u0627\u062f \u062d\u0644\u0642\u0647 \u0647\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0631\u0627 \u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">Divide<\/span><span class=\"o\">&lt;<\/span>\n  <span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">B<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">Res<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Zero<\/span>\n<span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">A<\/span> <span class=\"kd\">extends<\/span> <span class=\"p\">[...<\/span><span class=\"nx\">B<\/span><span class=\"p\">,<\/span> <span class=\"p\">...<\/span><span class=\"nx\">infer<\/span> <span class=\"nx\">T<\/span><span class=\"p\">]<\/span> <span class=\"p\">?<\/span> <span class=\"nx\">Divide<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span><span class=\"p\">,<\/span> <span class=\"nx\">B<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Add<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Res<\/span><span class=\"p\">,<\/span> <span class=\"nx\">One<\/span><span class=\"o\">&gt;&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"nx\">Res<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Example<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">DivideTest<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Divide<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">MultTest<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Six<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">DivideTestResult<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">DivideTest<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">DivideTest2<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Divide<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Six<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Four<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">DivideTest2Result<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">DivideTest2<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Result<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">DivideTest<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">DivideTestResult<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">4<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">DivideTest2<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">DivideTest2Result<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faamulumi.info%2F_assets%2Farticles%2Ftype-calculator%2Feasy.webp\" alt=\"\u062a\u0635\u0648\u06cc\u0631\u06cc \u0645\u062a\u062d\u0631\u06a9 \u0627\u0632 \u062f\u0648 \u0645\u0631\u062f \u06a9\u0647 \u0645\u06cc\u200c\u06af\u0648\u06cc\u0646\u062f \u00ab\u0622\u0633\u0627\u0646 \u0628\u0648\u062f\u00bb\" loading=\"lazy\" width=\"400\" height=\"257\" title=\"\"><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%BE%D8%A7%D8%AF%D8%A7%D8%B4_%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%85%D8%A7%DA%98%D9%88%D9%84\"><\/span>\n<p>  \u067e\u0627\u062f\u0627\u0634 \u0639\u0645\u0644\u06cc\u0627\u062a: \u0645\u0627\u0698\u0648\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Modulo \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0647\u0645\u0627\u0646 Divide \u0627\u0633\u062a. \u0645\u0627 \u0686\u0646\u062f \u0628\u0627\u0631 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>A<\/code> \u0634\u0627\u0645\u0644 <code>B<\/code>\u060c \u0648 \u0648\u0642\u062a\u06cc \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u06cc\u0645\u060c \u0628\u0647 \u062c\u0627\u06cc \u062a\u0639\u062f\u0627\u062f \u062a\u06a9\u0631\u0627\u0631\u060c \u0645\u0642\u062f\u0627\u0631 \u0628\u0627\u0642\u06cc\u0645\u0627\u0646\u062f\u0647 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u06cc\u0645. \u0648 tadaaaaaa\u060c \u0645\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u062f\u0648\u0644 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">Modulo<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"p\">,<\/span> <span class=\"nx\">U<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">TypeNumber<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">T<\/span> <span class=\"kd\">extends<\/span> <span class=\"p\">[<\/span>\n  <span class=\"p\">...<\/span><span class=\"nx\">U<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">...<\/span><span class=\"nx\">infer<\/span> <span class=\"nx\">S<\/span>\n<span class=\"p\">]<\/span>\n  <span class=\"p\">?<\/span> <span class=\"nx\">Modulo<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">S<\/span><span class=\"p\">,<\/span> <span class=\"nx\">U<\/span><span class=\"o\">&gt;<\/span>\n  <span class=\"p\">:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Example<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">ModuloTest<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Modulo<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">MultTest<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Six<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">ModuloTestResult<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">ModuloTest<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">ModuloTest2<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Modulo<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">Six<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Four<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">ModuloTest2Result<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">ModuloTest2<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Result<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">ModuloTest<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">ModuloTestResult<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">ModuloTest2<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"kc\">true<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">ModuloTest2Result<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 Typescript \u062f\u0627\u0631\u06cc\u0645. \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0627\u0639\u0634\u0627\u0631\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0648\u062f\u0648\u06cc\u06cc \u0627\u0639\u0634\u0627\u0631 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0645. \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0647 \u0648\u0636\u0648\u062d \u062f\u06cc\u0648\u0627\u0646\u06af\u06cc \u0627\u0633\u062a. \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u06cc\u0646 \u0642\u0637\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0645\u0627\u0646\u0646\u062f \u0645\u0646 \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u0622\u0646 \u0644\u0630\u062a \u0628\u0628\u0631\u06cc\u062f. \u0648 \u062f\u0631 \u0622\u062e\u0631\u060c \u0645\u0648\u0636\u0648\u0639 \u0628\u062d\u062b \u0627\u0648\u0644\u06cc\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u062f\u0648\u0633\u062a\u0645 \u062f\u0631 \u0645\u0648\u0631\u062f Turing-Complete Typescript \u062f\u0627\u0634\u062a\u0645.<\/p>\n<p>\u0628\u0627 \u062a\u0634\u06a9\u0631 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646! \u0627\u0632 \u0647\u0645\u0647 \u0645\u0627 \u0627\u06cc\u0646\u062c\u0627\u060c \u0645\u0646 \u0645\u06cc \u062e\u0648\u0627\u0647\u0645 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u0627\u062f \u0648 \u062e\u062f\u0627 \u062d\u0641\u0638 \u06a9\u0646\u062f\u060c \u062f\u0648\u0633\u062a \u0645\u0646! \ud83d\ude42<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faamulumi.info%2F_assets%2Farticles%2Ftype-calculator%2Fjcvd.webp\" alt=\"\u062a\u0635\u0648\u06cc\u0631\u06cc \u0645\u062a\u062d\u0631\u06a9 \u0627\u0632 \u0698\u0627\u0646 \u06a9\u0644\u0648\u062f \u0648\u0646 \u062f\u0627\u0645 \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0646\u062c\u0627\u0645 \u0634\u06a9\u0627\u0641 \u0628\u0632\u0631\u06af (\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06cc\u0646 \u06a9\u0644\u0645\u0647 \u0628\u0627\u0634\u062f) \u0648 \u06af\u0641\u062a\u0646 \" loading=\"lazy\" width=\"480\" height=\"360\" title=\"\"><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0632\u0645\u0627\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0628\u06cc \u0641\u0627\u06cc\u062f\u0647 \u062a\u0631\u06cc\u0646 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0627 \u0628\u0647 \u062d\u0627\u0644 \u0633\u0627\u062e\u062a\u0647 \u0627\u0645 &#8211; \u0686\u06cc\u0632\u06cc \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0639\u0642\u0644\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u0637\u0642 \u0627\u0632 \u0639\u0642\u0644\u0627\u0646\u06cc \u0628\u0648\u062f\u0646 \u0628\u0627\u0632 \u0645\u06cc \u0627\u06cc\u0633\u062a\u062f \u0648 \u062e\u0644\u0623 \u0648\u0627\u0642\u0639\u06cc\u062a \u0627\u0633\u062a. \u0632\u0645\u0627\u0646 \u0622\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 Typescript \u0627\u06cc\u062c\u0627\u062f &hellip;<\/p>\n","protected":false},"author":2,"featured_media":81556,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-81555","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/81555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=81555"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/81555\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/81556"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=81555"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=81555"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=81555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}