{"id":2092,"date":"2023-09-13T03:29:49","date_gmt":"2023-09-13T03:29:49","guid":{"rendered":"https:\/\/easycodingschool.com\/?p=2092"},"modified":"2023-09-13T03:30:34","modified_gmt":"2023-09-13T03:30:34","slug":"understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples","status":"publish","type":"post","link":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/","title":{"rendered":"Understanding TypeScript&#8217;s Structural Typing: Duck Typing and Compatibility Explained with Examples"},"content":{"rendered":"<p>Structural typing, commonly referred to as duck typing or static duck typing, is a type system used in TypeScript that emphasizes the shape or structure of types rather than their explicit declarations. This means that TypeScript evaluates the compatibility of types based on their member (property and method) structures rather than their names or declarations. Even if they were defined independently, two types are regarded as compatible if they share the same structure.<\/p>\n<p>Of course, let&#8217;s dissect TypeScript&#8217;s structural type with examples, point by point:<\/p>\n<h3>1. Type Definitions:<\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>interface Person {\r\nname: string;\r\nage: number;\r\n}\r\n\r\ninterface Employee {\r\nname: string;\r\nage: number;\r\nemployeeId: string;\r\n}<\/code><\/pre>\n<\/div>\n<ul>\n<li>\u00a0Person and Employee are the two interfaces we define.<\/li>\n<li>Name and age are attributes on both interfaces, but Employee also has employeeId.<\/li>\n<\/ul>\n<h3>2. Function Declaration:<\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>function printPerson(person: Person) {\r\nconsole.log(`Name: ${person.name}, Age: ${person.age}`);\r\n}<\/code><\/pre>\n<\/div>\n<ul>\n<li>We define the function printPerson, which takes a Person type parameter.<\/li>\n<li>\u00a0The name and age of the object are required parameters for this function.<\/li>\n<\/ul>\n<h3>3. Object Creation:<\/h3>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>const john: Person = { name: \"John\", age: 30 };\r\nconst sarah: Employee = { name: \"Sarah\", age: 25, employeeId: \"E12345\" };<\/code><\/pre>\n<\/div>\n<ul>\n<li>John and Sarah are two items that we make.<\/li>\n<li>\u00a0John is a Person of the Type with Name and Age.<\/li>\n<li>\u00a0Sarah has the properties name, age, and employeeId of type Employee.<\/li>\n<\/ul>\n<h4>4. Function Calls:<\/h4>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>printPerson(john);\r\nprintPerson(sarah);<\/code><\/pre>\n<\/div>\n<p>We call the printPerson method with the inputs john and sarah.<\/p>\n<p>Let&#8217;s now review each point:<\/p>\n<p><strong>1. Type Definitions:<\/strong><\/p>\n<ul>\n<li>We established two interfaces (Person and Employee) with various structural types.<\/li>\n<li>When compared to Person, Employee has an additional property (employeeId).<\/li>\n<\/ul>\n<p><strong>2. Function Declaration:<\/strong><\/p>\n<ul>\n<li>We declared a function whose input is an object of the type Person.<\/li>\n<\/ul>\n<p><strong>3. Object Creation:<\/strong><\/p>\n<ul>\n<li>We created two objects, john and sarah, with distinct properties.<\/li>\n<\/ul>\n<p><strong>4. Function Calls:<\/strong><\/p>\n<ul>\n<li><strong>printPerson(john);:<\/strong> We invoked the method using an object called Person, which is structurally compatible with the desired parameter, in the form of the name John.<\/li>\n<li><strong>printPerson(sarah);:<\/strong> Additionally, we used the Employee object sarah to call the procedure. This works because Sarah has the required name and age attributes, making it structurally compatible with Person. TypeScript uses structural typing to check compatibility.<\/li>\n<\/ul>\n<p>In conclusion, TypeScript&#8217;s structural typing enables you to interact with objects based on their structure rather than merely their explicit type declarations. This encourages code reuse and adaptability when working with objects that have similar shapes, as shown in the example.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Discover Shape Over Declarations in TypeScript&#8217;s structural typing. Learn from Examples<\/p>\n","protected":false},"author":1,"featured_media":2097,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[87,4,25,175],"tags":[127,108,126,64,184,182,178,186],"class_list":["post-2092","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-lifestyle","category-programming","category-typescript","tag-easy-coding","tag-easy-coding-school","tag-easycoding","tag-easycodingschool","tag-typescript","tag-typescript-basic","tag-typescript-tutorial","tag-typescripts-structural-typing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Understanding TypeScript&#039;s Structural Typing: Duck Typing and Compatibility Explained with Examples - Easy Coding School<\/title>\n<meta name=\"description\" content=\"Discover Shape Over Declarations in TypeScript&#039;s structural typing. Learn from Examples\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding TypeScript&#039;s Structural Typing: Duck Typing and Compatibility Explained with Examples - Easy Coding School\" \/>\n<meta property=\"og:description\" content=\"Discover Shape Over Declarations in TypeScript&#039;s structural typing. Learn from Examples\" \/>\n<meta property=\"og:url\" content=\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/\" \/>\n<meta property=\"og:site_name\" content=\"Easy Coding School\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-13T03:29:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-13T03:30:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"660\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"gauravkumarjha19@gmail.com\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gauravkumarjha19@gmail.com\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/\"},\"author\":{\"name\":\"gauravkumarjha19@gmail.com\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/#\/schema\/person\/9cabe8e90728da7f26676cbd1744558b\"},\"headline\":\"Understanding TypeScript&#8217;s Structural Typing: Duck Typing and Compatibility Explained with Examples\",\"datePublished\":\"2023-09-13T03:29:49+00:00\",\"dateModified\":\"2023-09-13T03:30:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/\"},\"wordCount\":358,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg\",\"keywords\":[\"Easy Coding\",\"Easy Coding School\",\"EasyCoding\",\"EasyCodingSchool\",\"Typescript\",\"typescript basic\",\"typescript tutorial\",\"TypeScript's Structural Typing\"],\"articleSection\":[\"Development\",\"Lifestyle\",\"Programming\",\"TypeScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/\",\"url\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/\",\"name\":\"Understanding TypeScript's Structural Typing: Duck Typing and Compatibility Explained with Examples - Easy Coding School\",\"isPartOf\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg\",\"datePublished\":\"2023-09-13T03:29:49+00:00\",\"dateModified\":\"2023-09-13T03:30:34+00:00\",\"description\":\"Discover Shape Over Declarations in TypeScript's structural typing. Learn from Examples\",\"breadcrumb\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#primaryimage\",\"url\":\"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg\",\"contentUrl\":\"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg\",\"width\":660,\"height\":350,\"caption\":\"Understanding TypeScript's Structural Typing: Duck Typing and Compatibility Explained with Examples\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/easycodingschool.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding TypeScript&#8217;s Structural Typing: Duck Typing and Compatibility Explained with Examples\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/#website\",\"url\":\"https:\/\/easycodingschool.com\/blog\/\",\"name\":\"Easy Coding School\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/easycodingschool.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/#organization\",\"name\":\"Easy Coding School\",\"url\":\"https:\/\/easycodingschool.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/07\/New-Project-10.png\",\"contentUrl\":\"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/07\/New-Project-10.png\",\"width\":310,\"height\":114,\"caption\":\"Easy Coding School \"},\"image\":{\"@id\":\"https:\/\/easycodingschool.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/#\/schema\/person\/9cabe8e90728da7f26676cbd1744558b\",\"name\":\"gauravkumarjha19@gmail.com\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/easycodingschool.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6846a3cc9bd6cb5b779aef260fe379c4b93fa20e1a4c753eb023ff7c08d7c668?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6846a3cc9bd6cb5b779aef260fe379c4b93fa20e1a4c753eb023ff7c08d7c668?s=96&d=mm&r=g\",\"caption\":\"gauravkumarjha19@gmail.com\"},\"sameAs\":[\"https:\/\/easycodingschool.com\/blog\"],\"url\":\"https:\/\/easycodingschool.com\/blog\/author\/gauravkumarjha19gmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Understanding TypeScript's Structural Typing: Duck Typing and Compatibility Explained with Examples - Easy Coding School","description":"Discover Shape Over Declarations in TypeScript's structural typing. Learn from Examples","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/","og_locale":"en_US","og_type":"article","og_title":"Understanding TypeScript's Structural Typing: Duck Typing and Compatibility Explained with Examples - Easy Coding School","og_description":"Discover Shape Over Declarations in TypeScript's structural typing. Learn from Examples","og_url":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/","og_site_name":"Easy Coding School","article_published_time":"2023-09-13T03:29:49+00:00","article_modified_time":"2023-09-13T03:30:34+00:00","og_image":[{"width":660,"height":350,"url":"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg","type":"image\/jpeg"}],"author":"gauravkumarjha19@gmail.com","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gauravkumarjha19@gmail.com","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#article","isPartOf":{"@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/"},"author":{"name":"gauravkumarjha19@gmail.com","@id":"https:\/\/easycodingschool.com\/blog\/#\/schema\/person\/9cabe8e90728da7f26676cbd1744558b"},"headline":"Understanding TypeScript&#8217;s Structural Typing: Duck Typing and Compatibility Explained with Examples","datePublished":"2023-09-13T03:29:49+00:00","dateModified":"2023-09-13T03:30:34+00:00","mainEntityOfPage":{"@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/"},"wordCount":358,"commentCount":1,"publisher":{"@id":"https:\/\/easycodingschool.com\/blog\/#organization"},"image":{"@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#primaryimage"},"thumbnailUrl":"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg","keywords":["Easy Coding","Easy Coding School","EasyCoding","EasyCodingSchool","Typescript","typescript basic","typescript tutorial","TypeScript's Structural Typing"],"articleSection":["Development","Lifestyle","Programming","TypeScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/","url":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/","name":"Understanding TypeScript's Structural Typing: Duck Typing and Compatibility Explained with Examples - Easy Coding School","isPartOf":{"@id":"https:\/\/easycodingschool.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#primaryimage"},"image":{"@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#primaryimage"},"thumbnailUrl":"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg","datePublished":"2023-09-13T03:29:49+00:00","dateModified":"2023-09-13T03:30:34+00:00","description":"Discover Shape Over Declarations in TypeScript's structural typing. Learn from Examples","breadcrumb":{"@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#primaryimage","url":"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg","contentUrl":"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/09\/Understanding-TypeScripts-Structural-Typing_-Duck-Typing-and-Compatibility-Explained-with-Examples.jpg","width":660,"height":350,"caption":"Understanding TypeScript's Structural Typing: Duck Typing and Compatibility Explained with Examples"},{"@type":"BreadcrumbList","@id":"https:\/\/easycodingschool.com\/blog\/understanding-typescripts-structural-typing-duck-typing-and-compatibility-explained-with-examples\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/easycodingschool.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Understanding TypeScript&#8217;s Structural Typing: Duck Typing and Compatibility Explained with Examples"}]},{"@type":"WebSite","@id":"https:\/\/easycodingschool.com\/blog\/#website","url":"https:\/\/easycodingschool.com\/blog\/","name":"Easy Coding School","description":"","publisher":{"@id":"https:\/\/easycodingschool.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/easycodingschool.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/easycodingschool.com\/blog\/#organization","name":"Easy Coding School","url":"https:\/\/easycodingschool.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/easycodingschool.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/07\/New-Project-10.png","contentUrl":"https:\/\/easycodingschool.com\/blog\/wp-content\/uploads\/2023\/07\/New-Project-10.png","width":310,"height":114,"caption":"Easy Coding School "},"image":{"@id":"https:\/\/easycodingschool.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/easycodingschool.com\/blog\/#\/schema\/person\/9cabe8e90728da7f26676cbd1744558b","name":"gauravkumarjha19@gmail.com","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/easycodingschool.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6846a3cc9bd6cb5b779aef260fe379c4b93fa20e1a4c753eb023ff7c08d7c668?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6846a3cc9bd6cb5b779aef260fe379c4b93fa20e1a4c753eb023ff7c08d7c668?s=96&d=mm&r=g","caption":"gauravkumarjha19@gmail.com"},"sameAs":["https:\/\/easycodingschool.com\/blog"],"url":"https:\/\/easycodingschool.com\/blog\/author\/gauravkumarjha19gmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/posts\/2092","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/comments?post=2092"}],"version-history":[{"count":5,"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/posts\/2092\/revisions"}],"predecessor-version":[{"id":2098,"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/posts\/2092\/revisions\/2098"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/media\/2097"}],"wp:attachment":[{"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/media?parent=2092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/categories?post=2092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/easycodingschool.com\/blog\/wp-json\/wp\/v2\/tags?post=2092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}