{"id":3668729,"date":"2025-07-21T08:00:49","date_gmt":"2025-07-21T12:00:49","guid":{"rendered":"https:\/\/spin.atomicobject.com\/?p=3668729"},"modified":"2025-07-18T15:35:58","modified_gmt":"2025-07-18T19:35:58","slug":"3-typescript-tips","status":"publish","type":"post","link":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/","title":{"rendered":"3 TypeScript Tips You Should Know About"},"content":{"rendered":"<p>I\u2019ve been primarily coding in TypeScript for over two years and am comfortable with its syntax and conventions, but still enjoy learning new tricks to improve my expertise. Here are some utility types I discovered recently that may help you improve code readability and quality.<\/p>\n<h2>Pick and Omit<\/h2>\n<p>Let&#8217;s say you created a type called <code>User<\/code>.<\/p>\n<pre><code class=\"language-ts\">type User = {\r\nid: string;\r\nname: string;\r\nage: number;\r\nemail: string;\r\nphone: string;\r\ncreatedAt: Date;\r\n};<\/code><\/pre>\n<p>If you want to create a related type that has only a few of the properties from <code>User<\/code>, you can use the <a href=\"https:\/\/www.typescriptlang.org\/docs\/handbook\/utility-types.html#picktype-keys\">Pick <\/a>utility.<\/p>\n<pre><code class=\"language-ts\">type ContactInfo = Pick&lt;User, \"email\" | \"phone\"&gt;;\r\n\r\nconst contactSources: ContactInfo = {\r\nemail: \"person@mail.com\",\r\nphone: \"4445556666\"\r\n};<\/code><\/pre>\n<p>This is useful for showing how different objects are related to each other. You can create a new type with the properties <code>email<\/code> and <code>phone<\/code> without using Pick, but it may be less clear that this object is related to User.<\/p>\n<p><a href=\"https:\/\/www.typescriptlang.org\/docs\/handbook\/utility-types.html#omittype-keys\">Omit<\/a> is the reverse of Pick, allowing you to grab all of a type&#8217;s properties and then remove specific keys.<\/p>\n<pre><code class=\"language-ts\">type ProfileData =\r\nOmit&lt;User, \"id\" | \"createdAt\"&gt;;\r\n\r\nconst userProfile: ProfileData = {\r\nname: \"Link\"\r\nage: 50;\r\nemail: \"link@mail.com\";\r\nphone: \"1234567890\";\r\n}<\/code><\/pre>\n<p>Both Pick and Omit allow you to create a new type that transforms the original. This makes them easier to debug if the type you are transforming is later modified. For example, if the property <code>age<\/code> is removed from User, you will see an error in <code>userProfile<\/code>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3668730 aligncenter\" src=\"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError-590x192.png\" alt=\"Screenshot of TypeScript error\" width=\"652\" height=\"212\" srcset=\"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError-590x192.png 590w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError-1024x334.png 1024w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError-150x49.png 150w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError-768x250.png 768w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError-1536x500.png 1536w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError-600x195.png 600w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError-1200x391.png 1200w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeScriptError.png 1584w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/p>\n<h2>Prettify<\/h2>\n<p>Prettify isn&#8217;t a globally available TypeScript helper but a self-implemented type that makes hover overlay easier to read.<br \/>\nSimply define the following type in your code:<\/p>\n<pre><code class=\"language-ts\">type Prettify = {\r\n  [K in keyof T]: T[K];\r\n} &amp; {};\r\n<\/code><\/pre>\n<p>The following type with multiple object intersections may look messy initially:<\/p>\n<pre><code class=\"language-ts\">type ItemInfoCombined =\r\n{ productName: string;\r\nid: string;\r\n} &amp; { category: string; } &amp; {\r\nisAvailable: boolean;\r\n}\r\n<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3668731 aligncenter\" src=\"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeWithoutPrettify.png\" alt=\"Type formatting without prettify \" width=\"429\" height=\"333\" srcset=\"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeWithoutPrettify.png 402w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeWithoutPrettify-150x116.png 150w\" sizes=\"auto, (max-width: 429px) 100vw, 429px\" \/><\/p>\n<p>If you wrap it in Prettify and hover over the type, all intersected objects are flattened into one:<\/p>\n<pre><code class=\"language-ts\">type ItemInfoCombined = Prettify&lt; \r\n{ productName: string; id: string } \r\n&amp; { category: string } \r\n&amp; { isAvailable: boolean; } &gt;;\r\n<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3668732 aligncenter\" src=\"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeWithPrettify.png\" alt=\"Type formatting with prettify on hover\" width=\"441\" height=\"256\" srcset=\"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeWithPrettify.png 410w, https:\/\/spin.atomicobject.com\/wp-content\/uploads\/typeWithPrettify-150x87.png 150w\" sizes=\"auto, (max-width: 441px) 100vw, 441px\" \/><br \/>\nSince Prettify is undocumented, it\u2019s not entirely clear why intersecting with an empty object works, but it&#8217;s some result of TypeScript&#8217;s compiler logic. Interestingly, intersecting this type with <code>unknown<\/code> in place of <code>{}<\/code> has the same effect on the formatting.<\/p>\n<p>These are only a few of the many utilities available in TypeScript. Try them out and see if they help you improve the quality of your code.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019ve been primarily coding in TypeScript for over two years and am comfortable with its syntax and conventions, but still enjoy learning new tricks to improve my expertise. Here are some utility types I discovered recently that may help you improve code readability and quality. Pick and Omit Let&#8217;s say you created a type called [&hellip;]<\/p>\n","protected":false},"author":665,"featured_media":3669222,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2262],"tags":[2319],"series":[],"class_list":["post-3668729","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-typescript","tag-typescript"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>3 TypeScript Tips You Should Know About<\/title>\n<meta name=\"description\" content=\"Learn how to leverage these three tips for improving the readability of your type definitions in TypeScript.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/spin.atomicobject.com\/3-typescript-tips\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"3 TypeScript Tips You Should Know About\" \/>\n<meta property=\"og:description\" content=\"Learn how to leverage these three tips for improving the readability of your type definitions in TypeScript.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/spin.atomicobject.com\/3-typescript-tips\/\" \/>\n<meta property=\"og:site_name\" content=\"Atomic Spin\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/atomicobject\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-21T12:00:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/DSC_3347.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1363\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Danielle Wisen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@atomicobject\" \/>\n<meta name=\"twitter:site\" content=\"@atomicobject\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Danielle Wisen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/\"},\"author\":{\"name\":\"Danielle Wisen\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#\\\/schema\\\/person\\\/9c735194f8298721e1cc14fef06d78fa\"},\"headline\":\"3 TypeScript Tips You Should Know About\",\"datePublished\":\"2025-07-21T12:00:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/\"},\"wordCount\":316,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/atomicobject.com\\\/\"},\"image\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/DSC_3347.jpg\",\"keywords\":[\"typescript\"],\"articleSection\":[\"TypeScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/\",\"name\":\"3 TypeScript Tips You Should Know About\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/DSC_3347.jpg\",\"datePublished\":\"2025-07-21T12:00:49+00:00\",\"description\":\"Learn how to leverage these three tips for improving the readability of your type definitions in TypeScript.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/3-typescript-tips\\\/#primaryimage\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/DSC_3347.jpg\",\"contentUrl\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/DSC_3347.jpg\",\"width\":2048,\"height\":1363,\"caption\":\"Pictured is author Danielle Wisen at her desk. Post title: 3 TypeScript Tips You Should Know About\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#website\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/\",\"name\":\"Atomic Spin\",\"description\":\"Atomic Object\u2019s blog on everything we find fascinating.\",\"publisher\":{\"@id\":\"https:\\\/\\\/atomicobject.com\\\/\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/spin.atomicobject.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#organization\",\"name\":\"Atomic Object\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/AO-Logo-Emblem-Color.png\",\"contentUrl\":\"https:\\\/\\\/spin.atomicobject.com\\\/wp-content\\\/uploads\\\/AO-Logo-Emblem-Color.png\",\"width\":258,\"height\":244,\"caption\":\"Atomic Object\"},\"image\":{\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/atomicobject\",\"https:\\\/\\\/x.com\\\/atomicobject\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/spin.atomicobject.com\\\/#\\\/schema\\\/person\\\/9c735194f8298721e1cc14fef06d78fa\",\"name\":\"Danielle Wisen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/58f21609fe7b1698591fb1167de5923232dff5a712ea175498bc44170aa6780f?s=96&d=blank&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/58f21609fe7b1698591fb1167de5923232dff5a712ea175498bc44170aa6780f?s=96&d=blank&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/58f21609fe7b1698591fb1167de5923232dff5a712ea175498bc44170aa6780f?s=96&d=blank&r=pg\",\"caption\":\"Danielle Wisen\"},\"description\":\"Software Consultant &amp; Developer at Atomic Object. Likes cats and building apps\",\"url\":\"https:\\\/\\\/spin.atomicobject.com\\\/author\\\/danielle-wisen\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"3 TypeScript Tips You Should Know About","description":"Learn how to leverage these three tips for improving the readability of your type definitions in TypeScript.","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:\/\/spin.atomicobject.com\/3-typescript-tips\/","og_locale":"en_US","og_type":"article","og_title":"3 TypeScript Tips You Should Know About","og_description":"Learn how to leverage these three tips for improving the readability of your type definitions in TypeScript.","og_url":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/","og_site_name":"Atomic Spin","article_publisher":"https:\/\/www.facebook.com\/atomicobject","article_published_time":"2025-07-21T12:00:49+00:00","og_image":[{"width":2048,"height":1363,"url":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/DSC_3347.jpg","type":"image\/jpeg"}],"author":"Danielle Wisen","twitter_card":"summary_large_image","twitter_creator":"@atomicobject","twitter_site":"@atomicobject","twitter_misc":{"Written by":"Danielle Wisen","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/#article","isPartOf":{"@id":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/"},"author":{"name":"Danielle Wisen","@id":"https:\/\/spin.atomicobject.com\/#\/schema\/person\/9c735194f8298721e1cc14fef06d78fa"},"headline":"3 TypeScript Tips You Should Know About","datePublished":"2025-07-21T12:00:49+00:00","mainEntityOfPage":{"@id":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/"},"wordCount":316,"commentCount":0,"publisher":{"@id":"https:\/\/atomicobject.com\/"},"image":{"@id":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/#primaryimage"},"thumbnailUrl":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/DSC_3347.jpg","keywords":["typescript"],"articleSection":["TypeScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/spin.atomicobject.com\/3-typescript-tips\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/","url":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/","name":"3 TypeScript Tips You Should Know About","isPartOf":{"@id":"https:\/\/spin.atomicobject.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/#primaryimage"},"image":{"@id":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/#primaryimage"},"thumbnailUrl":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/DSC_3347.jpg","datePublished":"2025-07-21T12:00:49+00:00","description":"Learn how to leverage these three tips for improving the readability of your type definitions in TypeScript.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/spin.atomicobject.com\/3-typescript-tips\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/spin.atomicobject.com\/3-typescript-tips\/#primaryimage","url":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/DSC_3347.jpg","contentUrl":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/DSC_3347.jpg","width":2048,"height":1363,"caption":"Pictured is author Danielle Wisen at her desk. Post title: 3 TypeScript Tips You Should Know About"},{"@type":"WebSite","@id":"https:\/\/spin.atomicobject.com\/#website","url":"https:\/\/spin.atomicobject.com\/","name":"Atomic Spin","description":"Atomic Object\u2019s blog on everything we find fascinating.","publisher":{"@id":"https:\/\/atomicobject.com\/"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/spin.atomicobject.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/spin.atomicobject.com\/#organization","name":"Atomic Object","url":"https:\/\/spin.atomicobject.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/spin.atomicobject.com\/#\/schema\/logo\/image\/","url":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/AO-Logo-Emblem-Color.png","contentUrl":"https:\/\/spin.atomicobject.com\/wp-content\/uploads\/AO-Logo-Emblem-Color.png","width":258,"height":244,"caption":"Atomic Object"},"image":{"@id":"https:\/\/spin.atomicobject.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/atomicobject","https:\/\/x.com\/atomicobject"]},{"@type":"Person","@id":"https:\/\/spin.atomicobject.com\/#\/schema\/person\/9c735194f8298721e1cc14fef06d78fa","name":"Danielle Wisen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/58f21609fe7b1698591fb1167de5923232dff5a712ea175498bc44170aa6780f?s=96&d=blank&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/58f21609fe7b1698591fb1167de5923232dff5a712ea175498bc44170aa6780f?s=96&d=blank&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/58f21609fe7b1698591fb1167de5923232dff5a712ea175498bc44170aa6780f?s=96&d=blank&r=pg","caption":"Danielle Wisen"},"description":"Software Consultant &amp; Developer at Atomic Object. Likes cats and building apps","url":"https:\/\/spin.atomicobject.com\/author\/danielle-wisen\/"}]}},"_links":{"self":[{"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/posts\/3668729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/users\/665"}],"replies":[{"embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/comments?post=3668729"}],"version-history":[{"count":0,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/posts\/3668729\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/media\/3669222"}],"wp:attachment":[{"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/media?parent=3668729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/categories?post=3668729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/tags?post=3668729"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/spin.atomicobject.com\/wp-json\/wp\/v2\/series?post=3668729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}