{"id":130,"date":"2020-08-11T21:21:30","date_gmt":"2020-08-11T19:21:30","guid":{"rendered":"http:\/\/blog.r3d-soft.de\/?p=130"},"modified":"2020-08-11T21:21:30","modified_gmt":"2020-08-11T19:21:30","slug":"typescript-generics-typ-eines-arrays-bekommen","status":"publish","type":"post","link":"https:\/\/r3d-soft.de\/?p=130","title":{"rendered":"TypeScript Generics: Typ eines Arrays bekommen"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">M\u00f6chte man den Typen eines Arrays, Tupels o.\u00e4. innerhalb der Generics bekommen, ben\u00f6tigen wir einen kleinen Behilfstyp.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser kann wie folgt aussehen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript line-numbers\">type Unwrap&lt;T> = T extends Array&lt;infer U> ? U : never<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Als Beispiel kann man nun ein Typ bekommen, welcher auf die Typen der Elemente im Array reduziert wird. Wie zum Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">type TupleType = [string, number];\r\n\r\ntype Unwrap&lt;T> = T extends Array&lt;infer U> ? U : never;\r\n\r\ntype OfTuple = Unwrap&lt;TupleType>; \/\/ string | number;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f6chte man den Typen eines Arrays, Tupels o.\u00e4. innerhalb der Generics bekommen, ben\u00f6tigen wir einen kleinen Behilfstyp. Dieser kann wie folgt aussehen: Als Beispiel kann man nun ein Typ bekommen, welcher auf die Typen der Elemente im Array reduziert wird. Wie zum Beispiel:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[2],"tags":[27,7],"class_list":["post-130","post","type-post","status-publish","format-standard","hentry","category-javascript-typescript","tag-generics","tag-typescript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TypeScript Generics: Typ eines Arrays bekommen - r3d-soft Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/r3d-soft.de\/?p=130\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TypeScript Generics: Typ eines Arrays bekommen - r3d-soft Blog\" \/>\n<meta property=\"og:description\" content=\"M\u00f6chte man den Typen eines Arrays, Tupels o.\u00e4. innerhalb der Generics bekommen, ben\u00f6tigen wir einen kleinen Behilfstyp. Dieser kann wie folgt aussehen: Als Beispiel kann man nun ein Typ bekommen, welcher auf die Typen der Elemente im Array reduziert wird. Wie zum Beispiel:\" \/>\n<meta property=\"og:url\" content=\"https:\/\/r3d-soft.de\/?p=130\" \/>\n<meta property=\"og:site_name\" content=\"r3d-soft Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-11T19:21:30+00:00\" \/>\n<meta name=\"author\" content=\"r3dst0rm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"r3dst0rm\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/?p=130#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/?p=130\"},\"author\":{\"name\":\"r3dst0rm\",\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#\\\/schema\\\/person\\\/a1b4a7334c42a9d1c6082ba82eeb8074\"},\"headline\":\"TypeScript Generics: Typ eines Arrays bekommen\",\"datePublished\":\"2020-08-11T19:21:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/?p=130\"},\"wordCount\":51,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#organization\"},\"keywords\":[\"generics\",\"typescript\"],\"articleSection\":[\"JavaScript \\\/ TypeScript\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/r3d-soft.de\\\/?p=130#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/?p=130\",\"url\":\"https:\\\/\\\/r3d-soft.de\\\/?p=130\",\"name\":\"TypeScript Generics: Typ eines Arrays bekommen - r3d-soft Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#website\"},\"datePublished\":\"2020-08-11T19:21:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/?p=130#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/r3d-soft.de\\\/?p=130\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/?p=130#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/r3d-soft.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TypeScript Generics: Typ eines Arrays bekommen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#website\",\"url\":\"https:\\\/\\\/r3d-soft.de\\\/\",\"name\":\"r3d-soft Blog\",\"description\":\"Alles rund ums Coding\",\"publisher\":{\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/r3d-soft.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#organization\",\"name\":\"Dominik\",\"url\":\"https:\\\/\\\/r3d-soft.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/r3d-soft.de\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/cropped-ic_launcher-1.png\",\"contentUrl\":\"https:\\\/\\\/r3d-soft.de\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/cropped-ic_launcher-1.png\",\"width\":150,\"height\":145,\"caption\":\"Dominik\"},\"image\":{\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/r3d-soft.de\\\/#\\\/schema\\\/person\\\/a1b4a7334c42a9d1c6082ba82eeb8074\",\"name\":\"r3dst0rm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a934ec13ea5f6644fb25e876316fa607f1dfd067b9f73c0ab835dd1438b433d6?s=96&d=mm&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a934ec13ea5f6644fb25e876316fa607f1dfd067b9f73c0ab835dd1438b433d6?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a934ec13ea5f6644fb25e876316fa607f1dfd067b9f73c0ab835dd1438b433d6?s=96&d=mm&r=pg\",\"caption\":\"r3dst0rm\"},\"sameAs\":[\"http:\\\/\\\/blog.r3d-soft.de\"],\"url\":\"https:\\\/\\\/r3d-soft.de\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TypeScript Generics: Typ eines Arrays bekommen - r3d-soft Blog","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:\/\/r3d-soft.de\/?p=130","og_locale":"de_DE","og_type":"article","og_title":"TypeScript Generics: Typ eines Arrays bekommen - r3d-soft Blog","og_description":"M\u00f6chte man den Typen eines Arrays, Tupels o.\u00e4. innerhalb der Generics bekommen, ben\u00f6tigen wir einen kleinen Behilfstyp. Dieser kann wie folgt aussehen: Als Beispiel kann man nun ein Typ bekommen, welcher auf die Typen der Elemente im Array reduziert wird. Wie zum Beispiel:","og_url":"https:\/\/r3d-soft.de\/?p=130","og_site_name":"r3d-soft Blog","article_published_time":"2020-08-11T19:21:30+00:00","author":"r3dst0rm","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"r3dst0rm"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/r3d-soft.de\/?p=130#article","isPartOf":{"@id":"https:\/\/r3d-soft.de\/?p=130"},"author":{"name":"r3dst0rm","@id":"https:\/\/r3d-soft.de\/#\/schema\/person\/a1b4a7334c42a9d1c6082ba82eeb8074"},"headline":"TypeScript Generics: Typ eines Arrays bekommen","datePublished":"2020-08-11T19:21:30+00:00","mainEntityOfPage":{"@id":"https:\/\/r3d-soft.de\/?p=130"},"wordCount":51,"commentCount":0,"publisher":{"@id":"https:\/\/r3d-soft.de\/#organization"},"keywords":["generics","typescript"],"articleSection":["JavaScript \/ TypeScript"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/r3d-soft.de\/?p=130#respond"]}]},{"@type":"WebPage","@id":"https:\/\/r3d-soft.de\/?p=130","url":"https:\/\/r3d-soft.de\/?p=130","name":"TypeScript Generics: Typ eines Arrays bekommen - r3d-soft Blog","isPartOf":{"@id":"https:\/\/r3d-soft.de\/#website"},"datePublished":"2020-08-11T19:21:30+00:00","breadcrumb":{"@id":"https:\/\/r3d-soft.de\/?p=130#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/r3d-soft.de\/?p=130"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/r3d-soft.de\/?p=130#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/r3d-soft.de\/"},{"@type":"ListItem","position":2,"name":"TypeScript Generics: Typ eines Arrays bekommen"}]},{"@type":"WebSite","@id":"https:\/\/r3d-soft.de\/#website","url":"https:\/\/r3d-soft.de\/","name":"r3d-soft Blog","description":"Alles rund ums Coding","publisher":{"@id":"https:\/\/r3d-soft.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/r3d-soft.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/r3d-soft.de\/#organization","name":"Dominik","url":"https:\/\/r3d-soft.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/r3d-soft.de\/#\/schema\/logo\/image\/","url":"https:\/\/r3d-soft.de\/wp-content\/uploads\/2020\/04\/cropped-ic_launcher-1.png","contentUrl":"https:\/\/r3d-soft.de\/wp-content\/uploads\/2020\/04\/cropped-ic_launcher-1.png","width":150,"height":145,"caption":"Dominik"},"image":{"@id":"https:\/\/r3d-soft.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/r3d-soft.de\/#\/schema\/person\/a1b4a7334c42a9d1c6082ba82eeb8074","name":"r3dst0rm","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/a934ec13ea5f6644fb25e876316fa607f1dfd067b9f73c0ab835dd1438b433d6?s=96&d=mm&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/a934ec13ea5f6644fb25e876316fa607f1dfd067b9f73c0ab835dd1438b433d6?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a934ec13ea5f6644fb25e876316fa607f1dfd067b9f73c0ab835dd1438b433d6?s=96&d=mm&r=pg","caption":"r3dst0rm"},"sameAs":["http:\/\/blog.r3d-soft.de"],"url":"https:\/\/r3d-soft.de\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/r3d-soft.de\/index.php?rest_route=\/wp\/v2\/posts\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/r3d-soft.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/r3d-soft.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/r3d-soft.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/r3d-soft.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=130"}],"version-history":[{"count":2,"href":"https:\/\/r3d-soft.de\/index.php?rest_route=\/wp\/v2\/posts\/130\/revisions"}],"predecessor-version":[{"id":132,"href":"https:\/\/r3d-soft.de\/index.php?rest_route=\/wp\/v2\/posts\/130\/revisions\/132"}],"wp:attachment":[{"href":"https:\/\/r3d-soft.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/r3d-soft.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/r3d-soft.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}