{"id":5798,"date":"2025-12-04T17:00:05","date_gmt":"2025-12-04T13:30:05","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=5798"},"modified":"2025-12-04T17:00:05","modified_gmt":"2025-12-04T13:30:05","slug":"%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%db%8c%da%af%d8%b1%d8%a7-%d8%af%d8%b1-typescript-%d8%a8%d8%a7-%da%a9%d9%84%d8%a7%d8%b3%d9%87%d8%a7","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%db%8c%da%af%d8%b1%d8%a7-%d8%af%d8%b1-typescript-%d8%a8%d8%a7-%da%a9%d9%84%d8%a7%d8%b3%d9%87%d8%a7\/","title":{"rendered":"\u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc\u200c\u06af\u0631\u0627 \u062f\u0631 TypeScript \u0628\u0627 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627"},"content":{"rendered":"<h2>\u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u062f\u0631 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<\/h2>\n<p>\u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u06cc\u06a9 \u0627\u0646\u062a\u0632\u0627\u0639 \u0631\u0627\u06cc\u062c \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc\u0621\u06af\u0631\u0627 (OOP) \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062a\u0648\u0635\u06cc\u0641 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u0647 \u0646\u0627\u0645 \u0622\u0628\u062c\u06a9\u062a\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0622\u0628\u062c\u06a9\u062a\u200c\u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0634\u0627\u0645\u0644 \u0648\u0636\u0639\u06cc\u062a \u0627\u0648\u0644\u06cc\u0647 \u0648 \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc\u06cc \u0628\u0627\u0634\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u0645\u0648\u0646\u0647 \u062e\u0627\u0635 \u0645\u0631\u062a\u0628\u0637 \u0647\u0633\u062a\u0646\u062f. \u062f\u0631 \u0633\u0627\u0644 \u06f2\u06f0\u06f1\u06f5\u060c ECMAScript 6 \u06cc\u06a9 \u0633\u06cc\u0646\u062a\u06a9\u0633 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u062f\u0631 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u062a\u0648\u062a\u0627\u06cc\u067e \u0632\u0628\u0627\u0646 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0632 \u0627\u06cc\u0646 \u0633\u06cc\u0646\u062a\u06a9\u0633 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0622\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0645\u062b\u0644 \u062a\u0639\u06cc\u06cc\u0646 \u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0639\u0636\u0627\u060c \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0632\u0627\u0639\u06cc\u060c \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u062c\u0646\u0631\u06cc\u06a9\u060c \u0645\u062a\u062f\u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u067e\u06cc\u06a9\u0627\u0646 \u0648 \u0686\u0646\u062f \u0645\u0648\u0631\u062f \u062f\u06cc\u06af\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u060c \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0622\u0646\u200c\u0647\u0627\u060c \u0648 \u0646\u062d\u0648\u0647 \u0628\u0631\u0631\u0633\u06cc \u0646\u0648\u0639 \u062f\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u062f\u0631 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0622\u0645\u0648\u0632\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0628\u0627 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0645\u062a\u0646\u0648\u0639 \u0647\u0645\u0631\u0627\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3>\u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633<\/h3>\n<p>\u0634\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u0645\u0647 \u06a9\u0644\u06cc\u062f\u06cc <code>class<\/code> \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u0627\u0645 \u06a9\u0644\u0627\u0633\u060c \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<pre><code>class Person {\r\n  \/\/ class body\r\n}<\/code><\/pre>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633\u060c \u0627\u0632 <code>new<\/code> \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0646\u0627\u0645 \u06a9\u0644\u0627\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code>const personInstance = new Person();<\/code><\/pre>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0644\u0627\u0633 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0642\u0627\u0644\u0628\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0622\u0628\u062c\u06a9\u062a\u200c\u0647\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u0647\u0631 \u0646\u0645\u0648\u0646\u0647\u060c \u06cc\u06a9 \u0622\u0628\u062c\u06a9\u062a \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0628\u0627 \u0634\u06a9\u0644 \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u062f\u0627\u0631\u062f.<\/p>\n<h3>\u0633\u0627\u0632\u0646\u062f\u0647 (Constructor)<\/h3>\n<p>\u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f \u062a\u0627 \u06cc\u06a9 \u0645\u062a\u062f \u0633\u0627\u0632\u0646\u062f\u0647 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u062a\u062f \u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062c\u062f\u06cc\u062f \u0627\u0632 \u06a9\u0644\u0627\u0633 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u0634\u0648\u062f \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06af\u0631\u062f\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644 \u0627\u0641\u0632\u0648\u062f\u0646 \u0633\u0627\u0632\u0646\u062f\u0647 \u0628\u0647 \u06a9\u0644\u0627\u0633 Person:<\/p>\n<pre><code>class Person {\r\n  constructor() {\r\n    console.log(\"Constructor called\");\r\n  }\r\n}<\/code><\/pre>\n<p>\u0628\u0631\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0633\u0627\u0632\u0646\u062f\u0647\u060c \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u067e\u0631\u0627\u0646\u062a\u0632 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code>class Person {\r\n  constructor(name: string) {\r\n    console.log(name);\r\n  }\r\n}\r\n\r\nconst personInstance = new Person(\"Jane\");<\/code><\/pre>\n<p>\u067e\u0627\u0631\u0627\u0645\u062a\u0631 <code>name<\/code> \u0627\u062c\u0628\u0627\u0631\u06cc \u0627\u0633\u062a \u0648 \u0627\u06af\u0631 \u0645\u0648\u0642\u0639 \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u0648\u0646\u0647 \u0622\u0646 \u0631\u0627 \u0648\u0627\u0631\u062f \u0646\u06a9\u0646\u06cc\u062f\u060c \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644\u0631 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062e\u0637\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<h3>\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 (Properties)<\/h3>\n<p>\u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0647\u0631 \u0646\u0645\u0648\u0646\u0647 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u062f\u0627\u0631\u0646\u062f. \u062f\u0631 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u060c \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0648\u06cc\u0698\u06af\u06cc \u0631\u0627 \u062f\u0627\u062e\u0644 \u06a9\u0644\u0627\u0633 \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0646\u0648\u0639 \u0622\u0646 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code>class Person {\r\n  name: string;\r\n\r\n  constructor(name: string) {\r\n    this.name = name;\r\n  }\r\n}<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0646\u0648\u0639 \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f\u060c \u0628\u0627\u06cc\u062f \u0645\u0642\u062f\u0627\u0631 \u0627\u0648\u0644\u06cc\u0647 \u0647\u0645 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0645\u06af\u0631 \u0627\u06cc\u0646\u06a9\u0647 \u0622\u0646 \u0631\u0627 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u06cc\u0627 \u0628\u0627 <code>undefined<\/code> \u0645\u062c\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0645\u0642\u062f\u0627\u0631 <code>undefined<\/code> \u0634\u062f\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0646\u06af\u0627\u0645 \u0646\u0645\u0648\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0642\u062f\u0627\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0647\u0645 \u0628\u0631\u0627\u06cc \u0648\u06cc\u0698\u06af\u06cc \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u062f\u060c \u0645\u062b\u0644 \u0646\u0645\u0648\u0646\u0647 \u0632\u06cc\u0631 \u06a9\u0647 \u0632\u0645\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u0648\u0646\u0647 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<pre><code>class Person {\r\n  name: string;\r\n  instantiatedAt: Date = new Date();\r\n\r\n  constructor(name: string) {\r\n    this.name = name;\r\n  }\r\n}<\/code><\/pre>\n<h3>\u062e\u0635\u0648\u0635\u06cc\u200c\u0633\u0627\u0632\u06cc \u0648 \u062d\u06cc\u0637\u0647 \u062f\u06cc\u062f \u0627\u0639\u0636\u0627 (Visibility)<\/h3>\n<p>\u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0639\u0636\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0633\u0647 \u062d\u0627\u0644\u062a <code>public<\/code>\u060c <code>protected<\/code> \u0648 <code>private<\/code> \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<ul>\n<li><strong>public<\/strong>: \u0627\u0639\u0636\u0627 \u0627\u0632 \u0647\u0631 \u062c\u0627\u06cc\u06cc \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0647\u0633\u062a\u0646\u062f\u061b \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0627\u0633\u062a.<\/li>\n<li><strong>protected<\/strong>: \u0627\u0639\u0636\u0627 \u0641\u0642\u0637 \u062f\u0631\u0648\u0646 \u062e\u0648\u062f \u06a9\u0644\u0627\u0633 \u06cc\u0627 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0641\u0631\u0632\u0646\u062f \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0647\u0633\u062a\u0646\u062f.<\/li>\n<li><strong>private<\/strong>: \u0627\u0639\u0636\u0627 \u0641\u0642\u0637 \u062f\u0631\u0648\u0646 \u06a9\u0644\u0627\u0633 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0648\u062f\u0647 \u0648 \u062d\u062a\u06cc \u0632\u06cc\u0631\u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u0628\u0647 \u0622\u0646\u200c\u0647\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u0646\u062f\u0627\u0631\u0646\u062f.<\/li>\n<\/ul>\n<p>\u0646\u0645\u0648\u0646\u0647\u200c\u0627\u06cc \u0627\u0632 \u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc <code>protected<\/code>:<\/p>\n<pre><code>class Employee {\r\n  protected identifier: string;\r\n\r\n  constructor(id: string) {\r\n    this.identifier = id;\r\n  }\r\n}\r\n\r\nclass FinanceEmployee extends Employee {\r\n  getId() {\r\n    return this.identifier;\r\n  }\r\n}<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u062e\u0627\u0631\u062c \u06a9\u0644\u0627\u0633 \u06cc\u0627 \u0632\u06cc\u0631\u06a9\u0644\u0627\u0633 \u0628\u0647 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc <code>identifier<\/code> \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062e\u0637\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<h3>\u06a9\u0648\u062a\u0627\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 (Parameter Properties)<\/h3>\n<p>\u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u0627\u0645\u200c\u0634\u0627\u0646 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u200c\u0647\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 \u06cc\u06a9\u06cc \u0627\u0633\u062a \u0631\u0627 \u062f\u0631 \u0647\u0645\u0627\u0646 \u0628\u062e\u0634 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u06a9\u062f\u062a\u0627\u0646 \u062e\u0644\u0627\u0635\u0647\u200c\u062a\u0631 \u0634\u0648\u062f:<\/p>\n<pre><code>class Person {\r\n  constructor(public name: string, public age: number) {\r\n    \/\/ No need to explicitly assign these values\r\n  }\r\n}<\/code><\/pre>\n<h3>\u0648\u0627\u0633\u0637\u200c\u0647\u0627 (Interfaces) \u0648 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0632\u0627\u0639\u06cc (Abstract Classes)<\/h3>\n<p>\u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u0647 \u062a\u0627 \u0634\u06a9\u0644 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u06cc\u0627 \u0634\u06cc\u0621 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0648\u0627\u0633\u0637\u200c\u0647\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u0627\u0645\u06a9\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u062e\u0648\u062f \u0646\u0645\u0648\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0635\u0631\u0641\u0627\u064b \u067e\u0627\u06cc\u0647\u200c\u0627\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u062a\u0639\u0631\u06cc\u0641 \u0648\u0627\u0633\u0637 Logger \u0628\u0631\u0627\u06cc \u0644\u0627\u06af \u06af\u0631\u0641\u062a\u0646:<\/p>\n<pre><code>interface Logger {\r\n  debug(message: string, metadata?: Record&lt;string, unknown&gt;): void;\r\n  info(message: string, metadata?: Record&lt;string, unknown&gt;): void;\r\n  warning(message: string, metadata?: Record&lt;string, unknown&gt;): void;\r\n  error(message: string, metadata?: Record&lt;string, unknown&gt;): void;\r\n}\r\n<\/code><\/pre>\n<p>\u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0648\u0627\u0633\u0637 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u062f:<\/p>\n<pre><code>class ConsoleLogger implements Logger {\r\n  debug(message: string, metadata?: Record&lt;string, unknown&gt;) {\r\n    console.debug(message, metadata);\r\n  }\r\n  info(message: string, metadata?: Record&lt;string, unknown&gt;) {\r\n    console.info(message, metadata);\r\n  }\r\n  warning(message: string, metadata?: Record&lt;string, unknown&gt;) {\r\n    console.warn(message, metadata);\r\n  }\r\n  error(message: string, metadata?: Record&lt;string, unknown&gt;) {\r\n    console.error(message, metadata);\r\n  }\r\n}<\/code><\/pre>\n<p>\u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0631\u062e\u06cc \u0627\u0639\u0636\u0627 \u0631\u0627 \u0628\u062f\u0648\u0646 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc (abstract) \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u0646\u062f \u0648 \u0632\u06cc\u0631\u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u0645\u0644\u0632\u0645 \u0628\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0622\u0646\u200c\u0647\u0627 \u0647\u0633\u062a\u0646\u062f:<\/p>\n<pre><code>abstract class Stream {\r\n  abstract read(): Buffer;\r\n  abstract write(data: Buffer): void;\r\n\r\n  copy(targetBuffer: Buffer, targetBufferOffset: number) {\r\n    const bytes = this.read();\r\n    \/\/ copy logic\r\n  }\r\n}\r\n\r\nclass FileStream extends Stream {\r\n  read() {\r\n    \/\/ implementation\r\n    return new Buffer();\r\n  }\r\n  write(data: Buffer) {\r\n    \/\/ implementation\r\n  }\r\n}<\/code><\/pre>\n<p>\u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u06a9\u0644\u0627\u0633 \u0641\u0631\u0632\u0646\u062f \u0647\u0631\u06a9\u062f\u0627\u0645 \u0627\u0632 \u0645\u062a\u062f\u0647\u0627\u06cc \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0646\u06a9\u0646\u062f\u060c \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062e\u0637\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<h3>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 \u067e\u06cc\u06a9\u0627\u0646 \u062f\u0631 \u0645\u062a\u062f\u0647\u0627<\/h3>\n<p>\u0628\u0631\u0627\u06cc \u062d\u0644 \u0645\u0634\u06a9\u0644 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u0642\u062f\u0627\u0631 <code>this<\/code> \u062f\u0631 \u0645\u062a\u062f\u0647\u0627\u06cc \u0639\u0627\u062f\u06cc\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062a\u0627\u0628\u0639 \u067e\u06cc\u06a9\u0627\u0646 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0645\u062a\u062f\u0647\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 <code>this<\/code> \u0647\u0645\u06cc\u0634\u0647 \u0628\u0647 \u0646\u0645\u0648\u0646\u0647 \u06a9\u0644\u0627\u0633 \u0627\u0634\u0627\u0631\u0647 \u06a9\u0646\u062f:<\/p>\n<pre><code>class Employee {\r\n  identifier: string;\r\n\r\n  constructor(id: string) {\r\n    this.identifier = id;\r\n  }\r\n\r\n  getIdentifier = () =&gt; {\r\n    return this.identifier;\r\n  };\r\n}\r\n\r\nconst employee = new Employee(\"123\");\r\nconst obj = { getId: employee.getIdentifier };\r\n\r\nconsole.log(obj.getId()); \/\/ Works correctly<\/code><\/pre>\n<h3>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0648\u0639<\/h3>\n<p>\u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u062f\u0631 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0645 \u0646\u0648\u0639 \u0647\u0633\u062a\u0646\u062f \u0648 \u0647\u0645 \u0645\u0642\u062f\u0627\u0631. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0646\u0627\u0645 \u06a9\u0644\u0627\u0633 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0648\u0639 \u062f\u0631 \u0627\u0645\u0636\u0627\u06cc \u062a\u0648\u0627\u0628\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code>function printEmployeeIdentifier(employee: Employee) {\r\n  console.log(employee.identifier);\r\n}<\/code><\/pre>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0627\u0646\u0648\u0627\u0639 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0633\u0627\u062e\u062a\u0627\u0631 (structural) \u0622\u0646\u200c\u0647\u0627 \u0639\u0645\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0634\u06a9\u0644 \u0645\u0634\u0627\u0628\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0634\u0648\u0646\u062f.<\/p>\n<h3>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0648\u0639 \u062e\u0627\u0635 <code>this<\/code> \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0644\u0627\u0633<\/h3>\n<p>\u0627\u06af\u0631 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u062a\u062f\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0641\u0642\u0637 \u0627\u0634\u06cc\u0627\u0621 \u0627\u0632 \u0646\u0648\u0639 \u062f\u0642\u06cc\u0642 \u06a9\u0644\u0627\u0633 \u0641\u0639\u0644\u06cc (\u0646\u0647 \u0632\u06cc\u0631\u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631) \u0631\u0627 \u0628\u067e\u0630\u06cc\u0631\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0646\u0648\u0639 \u062e\u0627\u0635 <code>this<\/code> \u062f\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code>class Employee {\r\n  identifier: string;\r\n\r\n  constructor(id: string) {\r\n    this.identifier = id;\r\n  }\r\n\r\n  isSameEmployeeAs(other: this) {\r\n    return this.identifier === other.identifier;\r\n  }\r\n}<\/code><\/pre>\n<h3>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0648\u0639 \u06a9\u0644\u0627\u0633 \u0628\u0647 \u062c\u0627\u06cc \u0646\u0645\u0648\u0646\u0647<\/h3>\n<p>\u06af\u0627\u0647\u06cc \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u06a9\u0644\u0627\u0633 \u0631\u0627 \u0628\u0647 \u062c\u0627\u06cc \u0646\u0645\u0648\u0646\u0647 \u0622\u0646 \u0628\u0647 \u062a\u0627\u0628\u0639 \u067e\u0627\u0633 \u062f\u0647\u06cc\u062f\u060c \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644 \u0633\u0627\u062e\u062a \u062a\u0627\u0628\u0639 \u06a9\u0627\u0631\u062e\u0627\u0646\u0647 (factory) \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f:<\/p>\n<pre><code>function createEmployee(ctor: typeof Employee, id: string) {\r\n  return new ctor(id);\r\n}\r\n\r\nconst newEmployee = createEmployee(Employee, \"124\");<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u06a9\u0644\u0627\u0633 \u067e\u0627\u06cc\u0647 <code>abstract<\/code> \u0628\u0627\u0634\u062f\u060c \u0628\u0627\u06cc\u062f \u0645\u0642\u062f\u0627\u0631 \u0646\u0648\u0639 \u0633\u0627\u0632\u0646\u062f\u0647 \u0631\u0627 \u0645\u0637\u0627\u0628\u0642 \u0632\u06cc\u0631 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code>function createEmployee(ctor: new (id: string) =&gt; Employee, id: string) {\r\n  return new ctor(id);\r\n}<\/code><\/pre>\n<h3>\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h3>\n<p>\u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u062f\u0631 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0633\u06cc\u0627\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u062a\u0631 \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0633\u062a\u0646\u062f\u060c \u0632\u06cc\u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u0646\u0648\u0639\u200c\u062f\u0647\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647\u060c \u0627\u0639\u0636\u0627 \u0631\u0627 \u0645\u062d\u062f\u0648\u062f \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u0648 \u0648\u0627\u0633\u0637\u200c\u0647\u0627 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0646\u0645\u0627\u06cc\u06cc\u062f\u060c \u0648 \u062a\u0636\u0645\u06cc\u0646 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0631\u0633\u062a \u0648 \u0642\u0627\u0628\u0644 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646\u06cc \u062f\u0627\u0631\u0646\u062f.<\/p>\n<p>\u0645\u0645\u0646\u0648\u0646 \u06a9\u0647 \u0628\u0627 <a href=\"https:\/\/parmin.cloud\/\"><strong>\u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/strong><\/a> \u0647\u0645\u0631\u0627\u0647\u06cc\u062f.<\/p>\n<div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>\u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u062f\u0631 \u062a\u0627\u06cc\u067e\u200c\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u06cc\u06a9 \u0627\u0646\u062a\u0632\u0627\u0639 \u0631\u0627\u06cc\u062c \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc\u0621\u06af\u0631\u0627 (OOP) \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062a\u0648\u0635\u06cc\u0641 \u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u0647 \u0646\u0627\u0645 \u0622\u0628\u062c\u06a9\u062a\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0622\u0628\u062c\u06a9\u062a\u200c\u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0634\u0627\u0645\u0644 \u0648\u0636\u0639\u06cc\u062a \u0627\u0648\u0644\u06cc\u0647 \u0648 \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc\u06cc \u0628\u0627\u0634\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u0645\u0648\u0646\u0647 \u062e\u0627\u0635 \u0645\u0631\u062a\u0628\u0637 \u0647\u0633\u062a\u0646\u062f. \u062f\u0631 \u0633\u0627\u0644 \u06f2\u06f0\u06f1\u06f5\u060c ECMAScript 6 \u06cc\u06a9 \u0633\u06cc\u0646\u062a\u06a9\u0633 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627 \u062f\u0631 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f \u06a9\u0647 [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":5806,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[67,190,8,56],"tags":[693,692,694,690,691],"class_list":["post-5798","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-67","category-programming","category-8","category-56","tag-693","tag----typescript","tag-694","tag-690","tag-691"],"aioseo_notices":[],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/5798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=5798"}],"version-history":[{"count":2,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/5798\/revisions"}],"predecessor-version":[{"id":5805,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/5798\/revisions\/5805"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/5806"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=5798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=5798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=5798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}