{"id":91523,"date":"2025-01-06T13:45:52","date_gmt":"2025-01-06T10:15:52","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/7-advanced-typescript-features-to-supercharge-your-development-5436\/"},"modified":"2025-01-06T13:45:52","modified_gmt":"2025-01-06T10:15:52","slug":"7-advanced-typescript-features-to-supercharge-your-development-5436","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/7-advanced-typescript-features-to-supercharge-your-development-5436\/","title":{"rendered":"7 \u0648\u06cc\u0698\u06af\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 TypeScript \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u0647\u0632\u06cc\u0646\u0647 \u062a\u0648\u0633\u0639\u0647 \u0634\u0645\u0627"},"content":{"rendered":"<div data-article-id=\"2190996\" id=\"article-body\">\n<blockquote>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u067e\u0631\u0641\u0631\u0648\u0634\u060c \u0627\u0632 \u0634\u0645\u0627 \u062f\u0639\u0648\u062a \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u062a\u0627\u0628 \u0647\u0627\u06cc \u0645\u0646 \u0631\u0627 \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f. \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0646 \u0631\u0627 \u062f\u0631 Medium \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u062d\u0645\u0627\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f. \u0645\u062a\u0634\u06a9\u0631\u0645 \u062d\u0645\u0627\u06cc\u062a \u0634\u0645\u0627 \u06cc\u0639\u0646\u06cc \u062f\u0646\u06cc\u0627! <\/p>\n<\/blockquote>\n<p>\u062a\u0627\u06cc\u067e \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0634\u06cc\u0648\u0647 \u0646\u0648\u0634\u062a\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0645\u062a\u062d\u0648\u0644 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u06af\u0633\u062a\u0631\u062f\u0647 \u0628\u0627 TypeScript \u06a9\u0627\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0632 \u0642\u062f\u0631\u062a \u0622\u0646 \u062f\u0631 \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0642\u0648\u06cc\u060c \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0642\u062f\u0631\u062f\u0627\u0646\u06cc \u06a9\u0631\u062f\u0647 \u0627\u0645. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0645\u0646 \u062a\u062c\u0631\u0628\u06cc\u0627\u062a \u0648 \u0628\u06cc\u0646\u0634 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0647\u0641\u062a \u0648\u06cc\u0698\u06af\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 TypeScript \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0631\u0648\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f\u060c \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0645.<\/p>\n<p>Type Guards \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u062f\u0631 TypeScript \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0627\u0646\u0648\u0627\u0639 \u0631\u0627 \u062f\u0631 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0634\u0631\u0637\u06cc \u0645\u062d\u062f\u0648\u062f \u06a9\u0646\u06cc\u0645. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0627\u062a\u062d\u0627\u062f\u06cc\u0647 \u06cc\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0646\u062c\u0627\u0645 \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0648\u0639 \u062e\u0627\u0635 \u062f\u0627\u0631\u06cc\u0645 \u0645\u0641\u06cc\u062f \u0647\u0633\u062a\u0646\u062f. \u0645\u0646 \u0645\u062d\u0627\u0641\u0638\u200c\u0647\u0627\u06cc \u0646\u0648\u0639 \u0631\u0627 \u062f\u0631 \u0628\u0647\u0628\u0648\u062f \u0627\u06cc\u0645\u0646\u06cc \u0646\u0648\u0639 \u0648 \u062e\u0648\u0627\u0646\u0627\u06cc\u06cc \u06a9\u062f \u0628\u0633\u06cc\u0627\u0631 \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u06cc\u0627\u0641\u062a\u0647\u200c\u0627\u0645.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">function<\/span> <span class=\"nf\">processValue<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"o\">|<\/span> <span class=\"kr\">number<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">typeof<\/span> <span class=\"nx\">value<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">string<\/span><span class=\"dl\">\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ TypeScript knows that 'value' is a string here<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">.<\/span><span class=\"nf\">toUpperCase<\/span><span class=\"p\">());<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ TypeScript knows that 'value' is a number here<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">.<\/span><span class=\"nf\">toFixed<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">));<\/span>\n  <span class=\"p\">}<\/span>\n<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>\u062f\u0631 \u0627\u06cc\u0646 \u06a9\u062f\u060c <code>typeof<\/code> \u0686\u06a9 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062d\u0627\u0641\u0638 \u0646\u0648\u0639 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 TypeScript \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0646\u0648\u0639 \u0635\u062d\u06cc\u062d \u0631\u0627 \u062f\u0631 \u0647\u0631 \u0628\u0644\u0648\u06a9 \u0627\u0633\u062a\u0646\u0628\u0627\u0637 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0632 \u062e\u0637\u0627\u0647\u0627 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0645\u0627 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc \u0633\u0627\u0632\u062f \u062a\u0627 \u0628\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0631\u0648\u0634 \u0647\u0627\u06cc \u0646\u0648\u0639 \u062e\u0627\u0635 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u062d\u0627\u0641\u0638 \u0647\u0627\u06cc \u0646\u0648\u0639 \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kr\">interface<\/span> <span class=\"nx\">Dog<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">bark<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kr\">interface<\/span> <span class=\"nx\">Cat<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">meow<\/span><span class=\"p\">():<\/span> <span class=\"k\">void<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">isDog<\/span><span class=\"p\">(<\/span><span class=\"nx\">animal<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Dog<\/span> <span class=\"o\">|<\/span> <span class=\"nx\">Cat<\/span><span class=\"p\">):<\/span> <span class=\"nx\">animal<\/span> <span class=\"k\">is<\/span> <span class=\"nx\">Dog<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span><span class=\"nx\">animal<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">Dog<\/span><span class=\"p\">).<\/span><span class=\"nx\">bark<\/span> <span class=\"o\">!==<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">makeSound<\/span><span class=\"p\">(<\/span><span class=\"nx\">animal<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Dog<\/span> <span class=\"o\">|<\/span> <span class=\"nx\">Cat<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nf\">isDog<\/span><span class=\"p\">(<\/span><span class=\"nx\">animal<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">animal<\/span><span class=\"p\">.<\/span><span class=\"nf\">bark<\/span><span class=\"p\">();<\/span> <span class=\"c1\">\/\/ TypeScript knows this is safe<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">animal<\/span><span class=\"p\">.<\/span><span class=\"nf\">meow<\/span><span class=\"p\">();<\/span> <span class=\"c1\">\/\/ TypeScript knows this is safe<\/span>\n  <span class=\"p\">}<\/span>\n<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>Mapped Types \u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u062a\u0627 \u0627\u0646\u0648\u0627\u0639 \u062c\u062f\u06cc\u062f\u06cc \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0627\u0646\u0648\u0627\u0639 \u0645\u0648\u062c\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645\u060c \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u062a\u06a9\u0631\u0627\u0631 \u06a9\u062f \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u062f \u0648 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0646\u0648\u0639 \u0645\u0627 \u0631\u0627 \u067e\u0648\u06cc\u0627\u062a\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u062b\u0627\u0644\u06cc \u0627\u0632 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0646 \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u0646\u06af\u0627\u0634\u062a \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0641\u0642\u0637 \u062e\u0648\u0627\u0646\u062f\u0646\u06cc \u0627\u0632 \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kr\">interface<\/span> <span class=\"nx\">User<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">name<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">email<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">type<\/span> <span class=\"nx\">ReadonlyUser<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">readonly<\/span> <span class=\"p\">[<\/span><span class=\"nx\">K<\/span> <span class=\"k\">in<\/span> <span class=\"kr\">keyof<\/span> <span class=\"nx\">User<\/span><span class=\"p\">]:<\/span> <span class=\"nx\">User<\/span><span class=\"p\">[<\/span><span class=\"nx\">K<\/span><span class=\"p\">];<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">user<\/span><span class=\"p\">:<\/span> <span class=\"nx\">ReadonlyUser<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">John Doe<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">email<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">john@example.com<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"c1\">\/\/ This would cause a TypeScript error<\/span>\n<span class=\"c1\">\/\/ user.name = \"Jane Doe\";<\/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>Conditional Types \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc TypeScript \u0645\u0646 \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0646\u062f\u0647 \u0628\u0627\u0632\u06cc \u0628\u0648\u062f\u0647 \u0627\u0633\u062a. \u0622\u0646\u200c\u0647\u0627 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0627 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0646\u0648\u0639 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u0627\u0646\u0648\u0627\u0639 \u062f\u06cc\u06af\u0631 \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f \u0648 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0646\u0648\u0639 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0648 \u06af\u0648\u06cc\u0627\u062a\u0631 \u0631\u0627 \u0627\u0645\u06a9\u0627\u0646\u200c\u067e\u0630\u06cc\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/p>\n<p>\u0645\u0646 \u0627\u063a\u0644\u0628 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0648\u0627\u0628\u0639 \u0639\u0645\u0648\u0645\u06cc \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u0634\u0631\u0637\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nb\">NonNullable<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">T<\/span> <span class=\"kd\">extends<\/span> <span class=\"kc\">null<\/span> <span class=\"o\">|<\/span> <span class=\"kc\">undefined<\/span> <span class=\"p\">?<\/span> <span class=\"nx\">never<\/span> <span class=\"p\">:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">processValue<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">):<\/span> <span class=\"nb\">NonNullable<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">null<\/span> <span class=\"o\">||<\/span> <span class=\"nx\">value<\/span> <span class=\"o\">===<\/span> <span class=\"kc\">undefined<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Error<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Value cannot be null or undefined<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n  <span class=\"k\">return<\/span> <span class=\"nx\">value<\/span> <span class=\"k\">as<\/span> <span class=\"nb\">NonNullable<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">result<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">processValue<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Hello<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Type is string<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">nullResult<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">processValue<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ TypeScript error<\/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>Literal Types \u06cc\u06a9\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u062a\u0627 \u0627\u0646\u0648\u0627\u0639\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0642\u06cc\u0642 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u0646\u062f\u060c \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062e\u0637\u0627\u0647\u0627 \u0648 \u0628\u0647\u0628\u0648\u062f \u0628\u0631\u0631\u0633\u06cc \u0646\u0648\u0639 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u062b\u0627\u0644\u06cc \u0627\u0632 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u062a\u062d\u062a \u0627\u0644\u0644\u0641\u0638\u06cc \u062f\u0631 \u06a9\u062f \u062e\u0648\u062f \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">Direction<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">north<\/span><span class=\"dl\">\"<\/span> <span class=\"o\">|<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">south<\/span><span class=\"dl\">\"<\/span> <span class=\"o\">|<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">east<\/span><span class=\"dl\">\"<\/span> <span class=\"o\">|<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">west<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">move<\/span><span class=\"p\">(<\/span><span class=\"nx\">direction<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Direction<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ Implementation<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nf\">move<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">north<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ This is valid<\/span>\n<span class=\"c1\">\/\/ move(\"up\"); \/\/ This would cause a TypeScript error<\/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\u062a\u062d\u0627\u062f\u06cc\u0647 \u0647\u0627\u06cc \u062a\u0628\u0639\u06cc\u0636 \u0634\u062f\u0647 \u0628\u0647 \u0628\u062e\u0634\u06cc \u0636\u0631\u0648\u0631\u06cc \u0627\u0632 \u062c\u0639\u0628\u0647 \u0627\u0628\u0632\u0627\u0631 TypeScript \u0645\u0646 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0646\u062f. \u0622\u0646\u0647\u0627 \u0627\u0646\u0648\u0627\u0639 \u0627\u062a\u062d\u0627\u062f\u06cc\u0647 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u0645\u062a\u0645\u0627\u06cc\u0632 \u0645\u0634\u062a\u0631\u06a9 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc \u06a9\u0646\u0646\u062f\u060c \u06a9\u0647 \u0627\u0645\u06a9\u0627\u0646 \u062a\u0639\u0627\u0631\u06cc\u0641 \u062f\u0642\u06cc\u0642 \u062a\u0631 \u0646\u0648\u0639 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0633\u0627\u0646 \u062a\u0631 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062a\u062d\u0627\u062f\u06cc\u0647 \u0647\u0627\u06cc \u062a\u0628\u0639\u06cc\u0636 \u0622\u0645\u06cc\u0632 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kr\">interface<\/span> <span class=\"nx\">Square<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">kind<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">square<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">size<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kr\">interface<\/span> <span class=\"nx\">Rectangle<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">kind<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">rectangle<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">width<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">height<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">type<\/span> <span class=\"nx\">Shape<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Square<\/span> <span class=\"o\">|<\/span> <span class=\"nx\">Rectangle<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nf\">calculateArea<\/span><span class=\"p\">(<\/span><span class=\"nx\">shape<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Shape<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">switch <\/span><span class=\"p\">(<\/span><span class=\"nx\">shape<\/span><span class=\"p\">.<\/span><span class=\"nx\">kind<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">case<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">square<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">return<\/span> <span class=\"nx\">shape<\/span><span class=\"p\">.<\/span><span class=\"nx\">size<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">shape<\/span><span class=\"p\">.<\/span><span class=\"nx\">size<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">case<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">rectangle<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span>\n      <span class=\"k\">return<\/span> <span class=\"nx\">shape<\/span><span class=\"p\">.<\/span><span class=\"nx\">width<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">shape<\/span><span class=\"p\">.<\/span><span class=\"nx\">height<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n<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>Generics \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0627\u0633\u062a \u06a9\u0647 \u0645\u0646 \u0627\u063a\u0644\u0628 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0627\u062c\u0632\u0627 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u062a\u0627 \u06a9\u062f\u06cc \u0628\u0646\u0648\u06cc\u0633\u06cc\u0645 \u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0686\u0646\u062f\u06cc\u0646 \u0646\u0648\u0639 \u06a9\u0627\u0631 \u06a9\u0646\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0627\u06cc\u0645\u0646\u06cc \u0646\u0648\u0639 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0627\u0632 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0639\u0645\u0648\u0645\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0646 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">function<\/span> <span class=\"nf\">reverseArray<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">[]):<\/span> <span class=\"nx\">T<\/span><span class=\"p\">[]<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nf\">reverse<\/span><span class=\"p\">();<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">numbers<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">reverseArray<\/span><span class=\"p\">([<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">]);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">strings<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">reverseArray<\/span><span class=\"p\">([<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">a<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">b<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">c<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">d<\/span><span class=\"dl\">\"<\/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>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0627\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u0645\u0641\u06cc\u062f \u0628\u0648\u062f\u0647\u200c\u0627\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u06a9\u0647 \u0645\u062a\u0627\u062f\u06cc\u062a\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 \u06cc\u0627 \u0631\u0641\u062a\u0627\u0631 \u06a9\u0644\u0627\u0633 \u0647\u0627\u060c \u0645\u062a\u062f\u0647\u0627 \u0648 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u06cc\u06a9 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">function<\/span> <span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">target<\/span><span class=\"p\">:<\/span> <span class=\"kr\">any<\/span><span class=\"p\">,<\/span> <span class=\"nx\">key<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">,<\/span> <span class=\"nx\">descriptor<\/span><span class=\"p\">:<\/span> <span class=\"nx\">PropertyDescriptor<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">originalMethod<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">descriptor<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"nx\">descriptor<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">function <\/span><span class=\"p\">(...<\/span><span class=\"nx\">args<\/span><span class=\"p\">:<\/span> <span class=\"kr\">any<\/span><span class=\"p\">[])<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Calling <\/span><span class=\"p\">${<\/span><span class=\"nx\">key<\/span><span class=\"p\">}<\/span><span class=\"s2\"> with arguments: <\/span><span class=\"p\">${<\/span><span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">(<\/span><span class=\"nx\">args<\/span><span class=\"p\">)}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">originalMethod<\/span><span class=\"p\">.<\/span><span class=\"nf\">apply<\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">,<\/span> <span class=\"nx\">args<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">descriptor<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">Calculator<\/span> <span class=\"p\">{<\/span>\n  <span class=\"p\">@<\/span><span class=\"nd\">log<\/span>\n  <span class=\"nf\">add<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">,<\/span> <span class=\"nx\">b<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">a<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">b<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">calc<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Calculator<\/span><span class=\"p\">();<\/span>\n<span class=\"nx\">calc<\/span><span class=\"p\">.<\/span><span class=\"nf\">add<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Logs: Calling add with arguments: [5,3]<\/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 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 TypeScript \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0648\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0645\u0646 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f\u0647 \u0627\u0633\u062a. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0647 \u0627\u0646\u062f \u06a9\u062f \u0642\u0648\u06cc \u062a\u0631 \u0648 \u0627\u06cc\u0645\u0646 \u062a\u0631 \u0628\u0646\u0648\u06cc\u0633\u0645\u060c \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0632\u0648\u062f\u062a\u0631 \u062f\u0631 \u0686\u0631\u062e\u0647 \u062a\u0648\u0633\u0639\u0647 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u0645 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u0645.<\/p>\n<p>Type Guards \u0628\u0647 \u0648\u06cc\u0698\u0647 \u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc API \u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u0645 \u0645\u0641\u06cc\u062f \u0628\u0648\u062f\u0647 \u0627\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u062a\u0627 \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0627\u0646\u0648\u0627\u0639 \u0631\u0627 \u0645\u062d\u062f\u0648\u062f \u06a9\u0646\u0645 \u0648 \u0645\u0648\u0627\u0631\u062f \u0645\u062e\u062a\u0644\u0641 \u0631\u0627 \u0628\u062f\u0648\u0646 \u062e\u0637\u0631 \u062e\u0637\u0627\u0647\u0627\u06cc \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u0645.<\/p>\n<p>Mapped Types \u0633\u0627\u0639\u062a \u0647\u0627\u06cc \u0628\u06cc \u0634\u0645\u0627\u0631\u06cc \u0631\u0627 \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u062a\u0639\u0627\u0631\u06cc\u0641 \u062a\u06a9\u0631\u0627\u0631\u06cc \u062a\u0627\u06cc\u067e \u0646\u062c\u0627\u062a \u062f\u0627\u062f\u0647 \u0627\u0633\u062a. \u0645\u0646 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0627\u0646\u0648\u0627\u0639 \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647\u200c\u0627\u0645 \u06a9\u0647 \u0631\u0627\u0628\u0637\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u0628\u0647 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u06a9\u0631\u062f\u0646 \u0647\u0645\u0647 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u06cc\u0627 \u0641\u0642\u0637 \u062e\u0648\u0627\u0646\u062f\u0646\u06cc \u06a9\u0631\u062f\u0646.<\/p>\n<p>\u0627\u0646\u0648\u0627\u0639 \u0634\u0631\u0637\u06cc \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u0648\u0627\u0628\u0639 \u0639\u0645\u0648\u0645\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u0628\u0648\u062f\u0647 \u0627\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0646\u062f \u062a\u0627 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0646\u0648\u0639 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631\u06cc \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u0645 \u06a9\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0627\u0646\u0648\u0627\u0639 \u0648\u0631\u0648\u062f\u06cc \u062a\u0637\u0628\u06cc\u0642 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f \u0648 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0646\u0648\u0639 \u06af\u0648\u06cc\u0627\u062a\u0631 \u0648 \u062f\u0642\u06cc\u0642\u200c\u062a\u0631 \u0645\u0646\u062c\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>Literal Types \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0646\u062f\u0647 \u0628\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0627\u0634\u06a9\u0627\u0644\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0631\u0634\u062a\u0647 \u06cc\u0627 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0639\u062f\u0627\u062f \u0646\u0627\u062f\u0631\u0633\u062a \u0628\u0648\u062f\u0647 \u0627\u0633\u062a. \u0645\u0646 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u06af\u0633\u062a\u0631\u062f\u0647 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0645\u0639\u062a\u0628\u0631 \u0628\u0631\u0627\u06cc \u0627\u0634\u06cc\u0627\u0621 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0645 \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u0645 \u06a9\u0647 \u0641\u0642\u0637 \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062c\u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u062a\u062d\u0627\u062f\u06cc\u0647 \u0647\u0627\u06cc \u062a\u0628\u0639\u06cc\u0636 \u0634\u062f\u0647 \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0648\u0644\u062a\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc React \u0645\u0641\u06cc\u062f \u0628\u0648\u062f\u0647 \u0627\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0646\u062f \u062a\u0627 \u0627\u0646\u0648\u0627\u0639 \u062f\u0642\u06cc\u0642\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u062d\u0627\u0644\u062a \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u0645\u060c \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0637\u0642 \u067e\u06cc\u0686\u06cc\u062f\u0647 UI \u0648 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062d\u0627\u0644\u062a \u0647\u0627\u06cc \u063a\u06cc\u0631\u0645\u0645\u06a9\u0646 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0698\u0646\u0631\u06cc\u06a9 \u0647\u0627 \u0647\u0633\u062a\u0647 \u0627\u0635\u0644\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 \u0648 \u0627\u062c\u0632\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0645\u0646 \u0628\u0648\u062f\u0647 \u0627\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0647\u200c\u0627\u0646\u062f \u062a\u0627 \u06a9\u062f \u0642\u0627\u0628\u0644 \u0627\u0646\u0639\u0637\u0627\u0641 \u0648 \u0627\u06cc\u0645\u0646 \u0628\u0646\u0648\u06cc\u0633\u0645 \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u062f\u0648\u0646 \u0628\u0647 \u062e\u0637\u0631 \u0627\u0646\u062f\u0627\u062e\u062a\u0646 \u0628\u0631\u0631\u0633\u06cc \u0646\u0648\u0639 \u06a9\u0627\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0631\u0627\u06cc \u062c\u0646\u0628\u0647 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u060c \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0648 \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0628\u0648\u062f\u0647 \u0627\u0646\u062f. \u0645\u0646 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0646\u06af\u0631\u0627\u0646\u06cc \u0647\u0627\u06cc \u0645\u0642\u0637\u0639\u06cc \u0628\u0647 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u062e\u0648\u062f \u0628\u062f\u0648\u0646 \u062f\u0631\u0647\u0645 \u0631\u06cc\u062e\u062a\u0646 \u0645\u0646\u0637\u0642 \u0627\u0635\u0644\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0645 \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u06a9\u062f\u0647\u0627\u06cc \u062a\u0645\u06cc\u0632\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u062a\u0631 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u062a\u062c\u0631\u0628\u0647 \u0645\u0646\u060c \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 TypeScript \u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0648\u0627\u0642\u0639\u0627 \u0645\u06cc \u062f\u0631\u062e\u0634\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0646 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0632 \u0698\u0646\u0631\u06cc\u06a9 \u0647\u0627 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0634\u0631\u0637\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0627\u0646\u0648\u0627\u0639 \u0627\u0628\u0632\u0627\u0631 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645\u060c \u06cc\u0627 \u0627\u062a\u062d\u0627\u062f\u06cc\u0647 \u0647\u0627\u06cc \u062a\u0628\u0639\u06cc\u0636 \u0622\u0645\u06cc\u0632 \u0631\u0627 \u0628\u0627 \u0645\u062d\u0627\u0641\u0638 \u0647\u0627\u06cc \u0646\u0648\u0639 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0648\u0644\u062a\u06cc \u0642\u0648\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u0645.<\/p>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646 \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u06cc\u0627\u0641\u062a\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u0646\u0642\u0634\u0647\u200c\u0628\u0631\u062f\u0627\u0631\u06cc \u0634\u062f\u0647 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0634\u0631\u0637\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0627\u0646\u0648\u0627\u0639 \u0627\u0628\u0632\u0627\u0631 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">DeepReadonly<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">readonly<\/span> <span class=\"p\">[<\/span><span class=\"nx\">P<\/span> <span class=\"k\">in<\/span> <span class=\"kr\">keyof<\/span> <span class=\"nx\">T<\/span><span class=\"p\">]:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">[<\/span><span class=\"nx\">P<\/span><span class=\"p\">]<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">object<\/span> <span class=\"p\">?<\/span> <span class=\"nx\">DeepReadonly<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span><span class=\"p\">[<\/span><span class=\"nx\">P<\/span><span class=\"p\">]<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">[<\/span><span class=\"nx\">P<\/span><span class=\"p\">];<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"kr\">interface<\/span> <span class=\"nx\">User<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">name<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">settings<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">theme<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span>\n    <span class=\"nl\">notifications<\/span><span class=\"p\">:<\/span> <span class=\"nx\">boolean<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">type<\/span> <span class=\"nx\">ReadonlyUser<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">DeepReadonly<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">User<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">user<\/span><span class=\"p\">:<\/span> <span class=\"nx\">ReadonlyUser<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">John<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">settings<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">theme<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">dark<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">notifications<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"c1\">\/\/ These would all cause TypeScript errors:<\/span>\n<span class=\"c1\">\/\/ user.id = 2;<\/span>\n<span class=\"c1\">\/\/ user.settings.theme = \"light\";<\/span>\n<span class=\"c1\">\/\/ user.settings = { theme: \"light\", notifications: false };<\/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 <code>DeepReadonly<\/code> type \u0628\u0647 \u0635\u0648\u0631\u062a \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0647\u0645\u0647 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06cc\u06a9 \u0634\u06cc (\u0648 \u0627\u0634\u06cc\u0627\u0621 \u062a\u0648\u062f\u0631\u062a\u0648) \u0631\u0627 \u0641\u0642\u0637 \u062e\u0648\u0627\u0646\u062f\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0639\u0627\u0644\u06cc \u0627\u0632 \u0642\u062f\u0631\u062a \u0633\u06cc\u0633\u062a\u0645 \u0646\u0648\u0639 TypeScript \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0644\u06af\u0648\u06cc \u062f\u06cc\u06af\u0631\u06cc \u06a9\u0647 \u0645\u0646 \u0645\u0641\u06cc\u062f \u06cc\u0627\u0641\u062a\u0645\u060c \u062a\u0631\u06a9\u06cc\u0628 \u0698\u0646\u0631\u06cc\u06a9 \u0647\u0627 \u0628\u0627 \u0627\u062a\u062d\u0627\u062f\u06cc\u0647 \u0647\u0627\u06cc \u062a\u0628\u0639\u06cc\u0636 \u0622\u0645\u06cc\u0632 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u06cc\u0645\u0646 \u0627\u0632 \u0646\u0648\u0639 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">type<\/span> <span class=\"nx\">EventMap<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">login<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span> <span class=\"na\">user<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span> <span class=\"nl\">timestamp<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span> <span class=\"p\">};<\/span>\n  <span class=\"nl\">logout<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span> <span class=\"na\">user<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span> <span class=\"nl\">timestamp<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span> <span class=\"p\">};<\/span>\n  <span class=\"nl\">purchase<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span> <span class=\"na\">item<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span> <span class=\"nl\">price<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">;<\/span> <span class=\"nl\">timestamp<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span> <span class=\"p\">};<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">EventEmitter<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">T<\/span> <span class=\"kd\">extends<\/span> <span class=\"nx\">EventMap<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">private<\/span> <span class=\"na\">listeners<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span> <span class=\"p\">[<\/span><span class=\"nx\">K<\/span> <span class=\"k\">in<\/span> <span class=\"kr\">keyof<\/span> <span class=\"nx\">T<\/span><span class=\"p\">]?:<\/span> <span class=\"p\">((<\/span><span class=\"na\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">[<\/span><span class=\"nx\">K<\/span><span class=\"p\">])<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">void<\/span><span class=\"p\">)[]<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{};<\/span>\n\n  <span class=\"nx\">on<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">K<\/span> <span class=\"kd\">extends<\/span> <span class=\"kr\">keyof<\/span> <span class=\"nx\">T<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"na\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">K<\/span><span class=\"p\">,<\/span> <span class=\"na\">listener<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"na\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">[<\/span><span class=\"nx\">K<\/span><span class=\"p\">])<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">void<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">listeners<\/span><span class=\"p\">[<\/span><span class=\"nx\">event<\/span><span class=\"p\">])<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">listeners<\/span><span class=\"p\">[<\/span><span class=\"nx\">event<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">listeners<\/span><span class=\"p\">[<\/span><span class=\"nx\">event<\/span><span class=\"p\">]<\/span><span class=\"o\">!<\/span><span class=\"p\">.<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">listener<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"nx\">emit<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">K<\/span> <span class=\"kd\">extends<\/span> <span class=\"kr\">keyof<\/span> <span class=\"nx\">T<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"na\">event<\/span><span class=\"p\">:<\/span> <span class=\"nx\">K<\/span><span class=\"p\">,<\/span> <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">T<\/span><span class=\"p\">[<\/span><span class=\"nx\">K<\/span><span class=\"p\">])<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">listeners<\/span><span class=\"p\">[<\/span><span class=\"nx\">event<\/span><span class=\"p\">])<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">listeners<\/span><span class=\"p\">[<\/span><span class=\"nx\">event<\/span><span class=\"p\">]<\/span><span class=\"o\">!<\/span><span class=\"p\">.<\/span><span class=\"nf\">forEach<\/span><span class=\"p\">((<\/span><span class=\"nx\">listener<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">listener<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">));<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">emitter<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">EventEmitter<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">EventMap<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">();<\/span>\n\n<span class=\"nx\">emitter<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">login<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">({<\/span> <span class=\"nx\">user<\/span><span class=\"p\">,<\/span> <span class=\"nx\">timestamp<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`<\/span><span class=\"p\">${<\/span><span class=\"nx\">user<\/span><span class=\"p\">}<\/span><span class=\"s2\"> logged in at <\/span><span class=\"p\">${<\/span><span class=\"k\">new<\/span> <span class=\"nc\">Date<\/span><span class=\"p\">(<\/span><span class=\"nx\">timestamp<\/span><span class=\"p\">)}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"nx\">emitter<\/span><span class=\"p\">.<\/span><span class=\"nf\">emit<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">login<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"na\">user<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">John<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">timestamp<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Date<\/span><span class=\"p\">.<\/span><span class=\"nf\">now<\/span><span class=\"p\">()<\/span> <span class=\"p\">});<\/span>\n<span class=\"c1\">\/\/ This would cause a TypeScript error:<\/span>\n<span class=\"c1\">\/\/ emitter.emit(\"login\", { user: \"John\" });<\/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 \u0627\u0644\u06af\u0648 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0628\u0627 \u0646\u0648\u0639 \u0628\u0627\u0631 \u0635\u062d\u06cc\u062d \u0645\u0646\u062a\u0634\u0631 \u0645\u06cc \u0634\u0648\u0646\u062f\u060c \u0627\u0632 \u062e\u0637\u0627\u0647\u0627\u06cc \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u06a9\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f.<\/p>\n<p>\u062f\u0631 \u0646\u062a\u06cc\u062c\u0647\u060c \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 TypeScript \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0636\u0631\u0648\u0631\u06cc \u062f\u0631 \u062c\u0639\u0628\u0647 \u0627\u0628\u0632\u0627\u0631 \u062a\u0648\u0633\u0639\u0647 \u0645\u0646 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u0645\u0646 \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0647 \u0627\u0646\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0642\u0648\u06cc \u062a\u0631\u060c \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u062a\u0631 \u0628\u0646\u0648\u06cc\u0633\u0645. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062d\u0627\u0641\u0638\u200c\u0647\u0627\u06cc \u0646\u0648\u0639\u060c \u0627\u0646\u0648\u0627\u0639 \u0646\u0642\u0634\u0647\u200c\u0628\u0631\u062f\u0627\u0631\u06cc \u0634\u062f\u0647\u060c \u0627\u0646\u0648\u0627\u0639 \u0634\u0631\u0637\u06cc\u060c \u0627\u0646\u0648\u0627\u0639 \u062a\u062d\u062a \u0627\u0644\u0644\u0641\u0638\u06cc\u060c \u0627\u062a\u062d\u0627\u062f\u06cc\u0647\u200c\u0647\u0627\u06cc \u062a\u0628\u0639\u06cc\u0636\u200c\u0622\u0645\u06cc\u0632\u060c \u0698\u0646\u0631\u06cc\u06a9\u200c\u0647\u0627\u060c \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u060c \u062a\u0648\u0627\u0646\u0633\u062a\u0645 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0646\u0648\u0639 \u062f\u0642\u06cc\u0642\u200c\u062a\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u0645\u060c \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0632\u0648\u062f\u062a\u0631 \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u062a\u0634\u062e\u06cc\u0635 \u062f\u0647\u0645 \u0648 \u06a9\u062f \u06af\u0648\u06cc\u0627\u062a\u0631\u06cc \u0628\u0646\u0648\u06cc\u0633\u0645.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0642\u062f\u0631\u062a \u0632\u06cc\u0627\u062f\u060c \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0628\u0632\u0631\u06af\u06cc \u0646\u06cc\u0632 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062f\u0627\u0631\u062f. \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u062f \u0645\u0627 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u0646\u062f\u060c \u0627\u0645\u0627 \u0627\u06af\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0639\u0627\u0642\u0644\u0627\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0634\u0648\u0646\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0646\u0648\u0639 \u0628\u0633\u06cc\u0627\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0645\u0646\u062c\u0631 \u0634\u0648\u0646\u062f. \u0645\u0627\u0646\u0646\u062f \u0647\u0631 \u0627\u0628\u0632\u0627\u0631 \u062f\u06cc\u06af\u0631\u06cc\u060c \u0646\u06a9\u062a\u0647 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646\u0647\u0627 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0648\u0627\u0636\u062d\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u0648 \u06a9\u06cc\u0641\u06cc\u062a \u06a9\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u0646\u062f.<\/p>\n<p>\u0645\u0646 \u0647\u0645\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u062a\u0634\u0648\u06cc\u0642 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 TypeScript \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u0646\u062f. \u0622\u0646\u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u062f\u0644\u0647\u0631\u0647 \u0622\u0648\u0631 \u0628\u0647 \u0646\u0638\u0631 \u0628\u0631\u0633\u0646\u062f\u060c \u0627\u0645\u0627 \u0628\u0627 \u062a\u0645\u0631\u06cc\u0646\u060c \u0628\u0647 \u0645\u062a\u062d\u062f\u0627\u0646 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u062f\u0631 \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0628\u0627 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0627\u0644\u0627 \u0648 \u0627\u06cc\u0645\u0646 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f. \u0632\u0645\u0627\u0646 \u0635\u0631\u0641 \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0648 \u0628\u0647 \u06a9\u0627\u0631\u06af\u06cc\u0631\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0628\u0627\u06af\u200c\u0647\u0627\u06cc \u06a9\u0645\u062a\u0631\u060c \u062e\u0648\u0627\u0646\u0627\u06cc\u06cc \u06a9\u062f \u0628\u0647\u0628\u0648\u062f \u06cc\u0627\u0641\u062a\u0647 \u0648 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0646\u062a\u06cc\u062c\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u062f.<\/p>\n<p>\u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c TypeScript \u0641\u0642\u0637 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u0646\u0648\u0627\u0639 \u0628\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0646\u06cc\u0633\u062a. \u0627\u06cc\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u0646\u0648\u0639 \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f \u0628\u0647\u062a\u0631 \u0648 \u0627\u06cc\u0645\u0646 \u062a\u0631 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0641\u0642\u0637 \u0642\u0646\u062f \u0646\u062d\u0648\u06cc \u0646\u06cc\u0633\u062a\u0646\u062f &#8211; \u0622\u0646\u0647\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0627\u0633\u0627\u0633\u06cc \u0646\u062d\u0648\u0647 \u0637\u0631\u0627\u062d\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u0646\u062f.<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u062a\u06a9\u0627\u0645\u0644 \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u062f\u060c \u0645\u0646 \u0647\u06cc\u062c\u0627\u0646 \u0632\u062f\u0647 \u0647\u0633\u062a\u0645 \u06a9\u0647 \u0628\u0628\u06cc\u0646\u0645 TypeScript \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0622\u0646 \u0686\u06af\u0648\u0646\u0647 \u0622\u06cc\u0646\u062f\u0647 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0631\u0627 \u0634\u06a9\u0644 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u062f. \u0628\u0627 \u062a\u0633\u0644\u0637 \u0628\u0631 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u060c \u0645\u0627 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u062e\u0637 \u0645\u0642\u062f\u0645 \u0627\u06cc\u0646 \u062a\u06a9\u0627\u0645\u0644 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u0648 \u0622\u0645\u0627\u062f\u0647 \u0633\u0627\u062e\u062a\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0642\u0648\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0641\u0631\u062f\u0627 \u0647\u0633\u062a\u06cc\u0645.<\/p>\n<hr\/>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 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=\"Toggle Table of Content\"><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\/7-advanced-typescript-features-to-supercharge-your-development-5436\/#101_%DA%A9%D8%AA%D8%A7%D8%A8\" >101 \u06a9\u062a\u0627\u0628<\/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\/7-advanced-typescript-features-to-supercharge-your-development-5436\/#%D9%85%D8%AE%D9%84%D9%88%D9%82%D8%A7%D8%AA_%D9%85%D8%A7\" >\u0645\u062e\u0644\u0648\u0642\u0627\u062a \u0645\u0627<\/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\/7-advanced-typescript-features-to-supercharge-your-development-5436\/#%D9%85%D8%A7_%D8%AF%D8%B1_%D8%AD%D8%A7%D9%84%D8%AA_%D9%85%D8%AA%D9%88%D8%B3%D8%B7_%E2%80%8B%E2%80%8B%D9%87%D8%B3%D8%AA%DB%8C%D9%85\" >\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0648\u0633\u0637 \u200b\u200b\u0647\u0633\u062a\u06cc\u0645<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"101_%DA%A9%D8%AA%D8%A7%D8%A8\"><\/span>\n<p>  101 \u06a9\u062a\u0627\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>101 \u06a9\u062a\u0627\u0628<\/strong> \u06cc\u06a9 \u0634\u0631\u06a9\u062a \u0627\u0646\u062a\u0634\u0627\u0631\u0627\u062a\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0647\u0645\u06a9\u0627\u0631\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u062a\u0623\u0633\u06cc\u0633 \u0634\u062f\u0647 \u0627\u0633\u062a <strong>\u0622\u0631\u0627\u0648 \u062c\u0648\u0634\u06cc<\/strong>. \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0646\u0627\u0648\u0631\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc\u060c \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0634\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u0628\u0627\u0648\u0631\u0646\u06a9\u0631\u062f\u0646\u06cc \u067e\u0627\u06cc\u06cc\u0646 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u06cc\u0645\u2014\u0628\u0639\u0636\u06cc \u06a9\u062a\u0627\u0628\u200c\u0647\u0627 \u0642\u06cc\u0645\u062a \u067e\u0627\u06cc\u06cc\u0646\u06cc \u062f\u0627\u0631\u0646\u062f. <strong>4 \u062f\u0644\u0627\u0631<\/strong>&#8211; \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u062f\u0627\u0646\u0634 \u0628\u0627 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0631\u0627\u06cc \u0647\u0645\u0647.<\/p>\n<p>\u06a9\u062a\u0627\u0628 \u0645\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f <strong>\u06a9\u062f \u067e\u0627\u06a9 \u06af\u0644\u0627\u0646\u06af<\/strong> \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a. <\/p>\n<p>\u0645\u0646\u062a\u0638\u0631 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0647\u0627 \u0648 \u0627\u062e\u0628\u0627\u0631 \u0647\u06cc\u062c\u0627\u0646 \u0627\u0646\u06af\u06cc\u0632 \u0628\u0627\u0634\u06cc\u062f. \u0647\u0646\u06af\u0627\u0645 \u062e\u0631\u06cc\u062f \u06a9\u062a\u0627\u0628\u060c \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f <strong>\u0622\u0631\u0627\u0648 \u062c\u0648\u0634\u06cc<\/strong> \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0639\u0646\u0627\u0648\u06cc\u0646 \u0628\u06cc\u0634\u062a\u0631 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0644\u0630\u062a \u0628\u0631\u062f\u0646 \u0627\u0632 \u0644\u06cc\u0646\u06a9 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <strong>\u062a\u062e\u0641\u06cc\u0641 \u0647\u0627\u06cc \u0648\u06cc\u0698\u0647<\/strong>!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AE%D9%84%D9%88%D9%82%D8%A7%D8%AA_%D9%85%D8%A7\"><\/span>\n<p>  \u0645\u062e\u0644\u0648\u0642\u0627\u062a \u0645\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062d\u062a\u0645\u0627\u064b \u062e\u0644\u0627\u0642\u06cc\u062a \u0647\u0627\u06cc \u0645\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<p><strong>\u0645\u0631\u06a9\u0632 \u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631<\/strong> | <strong>\u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631 \u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc \u0645\u0631\u06a9\u0632\u06cc<\/strong> | <strong>\u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631 \u0622\u0644\u0645\u0627\u0646 \u0645\u0631\u06a9\u0632\u06cc<\/strong> | <strong>\u0632\u0646\u062f\u06af\u06cc \u0647\u0648\u0634\u0645\u0646\u062f<\/strong> | <strong>\u062f\u0648\u0631\u0647 \u0647\u0627 \u0648 \u067e\u0698\u0648\u0627\u06a9 \u0647\u0627<\/strong> | <strong>\u0627\u0633\u0631\u0627\u0631 \u06af\u06cc\u062c \u06a9\u0646\u0646\u062f\u0647<\/strong> | <strong>\u0647\u0646\u062f\u0648\u062a\u0648\u0627<\/strong> | <strong>Elite Dev<\/strong> | <strong>\u0645\u062f\u0627\u0631\u0633 JS<\/strong><\/p>\n<hr\/>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%A7_%D8%AF%D8%B1_%D8%AD%D8%A7%D9%84%D8%AA_%D9%85%D8%AA%D9%88%D8%B3%D8%B7_%E2%80%8B%E2%80%8B%D9%87%D8%B3%D8%AA%DB%8C%D9%85\"><\/span>\n<p>  \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0648\u0633\u0637 \u200b\u200b\u0647\u0633\u062a\u06cc\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u0628\u06cc\u0646\u0634 \u06a9\u0648\u0622\u0644\u0627\u06cc \u0641\u0646\u06cc<\/strong> | <strong>\u062f\u0648\u0631\u0627\u0646 \u0648 \u067e\u0698\u0648\u0627\u06a9 \u062c\u0647\u0627\u0646<\/strong> | <strong>\u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631 \u0645\u0631\u06a9\u0632\u06cc \u0645\u062a\u0648\u0633\u0637<\/strong> | <strong>\u0631\u0627\u0632\u0647\u0627\u06cc \u06af\u06cc\u062c \u06a9\u0646\u0646\u062f\u0647 \u0631\u0633\u0627\u0646\u0647<\/strong> | <strong>\u0631\u0633\u0627\u0646\u0647 \u0639\u0644\u0645 \u0648 \u0639\u0635\u0631<\/strong> | <strong>\u0647\u0646\u062f\u0648\u062a\u0648\u0627\u06cc \u0645\u062f\u0631\u0646<\/strong><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u067e\u0631\u0641\u0631\u0648\u0634\u060c \u0627\u0632 \u0634\u0645\u0627 \u062f\u0639\u0648\u062a \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u062a\u0627\u0628 \u0647\u0627\u06cc \u0645\u0646 \u0631\u0627 \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f. \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0646 \u0631\u0627 \u062f\u0631 Medium \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u0648 \u062d\u0645\u0627\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f. \u0645\u062a\u0634\u06a9\u0631\u0645 \u062d\u0645\u0627\u06cc\u062a \u0634\u0645\u0627 \u06cc\u0639\u0646\u06cc \u062f\u0646\u06cc\u0627! \u062a\u0627\u06cc\u067e \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0634\u06cc\u0648\u0647 \u0646\u0648\u0634\u062a\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0645\u062a\u062d\u0648\u0644 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":91524,"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-91523","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\/91523","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=91523"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/91523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/91524"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=91523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=91523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=91523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}