{"id":3248,"date":"2020-07-13T08:52:00","date_gmt":"2020-07-13T08:52:00","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/generics-in-typescript\/"},"modified":"2026-04-24T11:39:03","modified_gmt":"2026-04-24T11:39:03","slug":"generiskie-tipveida-rakstiba","status":"publish","type":"post","link":"https:\/\/thecodest.co\/lv\/blog\/generics-in-typescript\/","title":{"rendered":"TypeScript visp\u0101r\u012bgie nosaukumi"},"content":{"rendered":"<p>\u0122enerikas var izmantot kop\u0101 ar funkcij\u0101m (izveidojot \u0123enerisku funkciju), klas\u0113m (izveidojot \u0123enerisku klasi) un saskarn\u0113m (izveidojot \u0123enerisku saskarni).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pamata lieto\u0161ana<\/h2>\n\n\n\n<p>Iesp\u0113jams, ka agr\u0101k esat izmantoju\u0161i \u0123en\u0113riskos kodus, pat to nezinot - visbie\u017e\u0101k \u0123en\u0113riskie kodi tiek izmantoti, deklar\u0113jot mas\u012bvu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">const myArray: string[];<\/code><\/pre>\n\n\n\n<p>No pirm\u0101 acu uzmetiena tas nav p\u0101r\u0101k \u012bpa\u0161s, m\u0113s tikai pazi\u0146ojam. <code>myArray<\/code> k\u0101 virk\u0146u mas\u012bvu, bet tas ir tas pats, kas visp\u0101r\u012bg\u0101 deklar\u0101cija:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">const myArray: mas\u012bvs;<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Viennoz\u012bm\u012bgu lietu saglab\u0101\u0161ana<\/h2>\n\n\n\n<p>S\u0101ksim ar \u013coti vienk\u0101r\u0161u piem\u0113ru - k\u0101 m\u0113s var\u0113tu p\u0101rnest \u0161o vani\u013cas <a href=\"https:\/\/thecodest.co\/lv\/blog\/hire-vue-js-developers\/\">JS<\/a> funkciju, lai <a href=\"https:\/\/thecodest.co\/lv\/dictionary\/typescript-developer\/\">TypeScript<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">funkcija getPrefiledArray(filler, length) {\n    return (new Array(length)).fill(filler);\n}<\/code><\/pre>\n\n\n\n<p>\u0160\u012b funkcija atgriez\u012bs mas\u012bvu, kas piepild\u012bts ar nor\u0101d\u012bto daudzumu <code>pildviela<\/code>, t\u0101p\u0113c <code>garums<\/code> b\u016bs <code>numurs<\/code> un visa funkcija atgriez\u012bs mas\u012bvu <code>pildviela<\/code> - bet kas ir pildviela? \u0160obr\u012bd tas var b\u016bt jebkas, t\u0101p\u0113c viena no iesp\u0113j\u0101m ir izmantot <code>jebkur\u0161<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">funkcija getPrefiledArray(filler: any, length: number): any[] {\n    return (new Array(length)).fill(filler);\n}<\/code><\/pre>\n\n\n\n<p>Izmantojot <code>jebkur\u0161<\/code> noteikti ir visp\u0101r\u012bgs - m\u0113s varam nodot burtiski jebko, t\u0101p\u0113c defin\u012bcija \u201cstr\u0101d\u0101t ar vair\u0101kiem tipiem, nevis ar vienu tipu\u201d ir piln\u012bb\u0101 ietverta, bet m\u0113s zaud\u0113jam saikni starp <code>pildviela<\/code> tips un atgrie\u0161anas tips. \u0160aj\u0101 gad\u012bjum\u0101 m\u0113s v\u0113lamies atgriezt k\u0101du kop\u012bgu lietu, un m\u0113s varam skaidri defin\u0113t \u0161o kop\u012bgo lietu k\u0101 <strong>tipa parametrs<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">funkcija getPrefiledArray(filler: T, length: number): T[] {\n    return (new Array(length)).fill(filler);\n}<\/code><\/pre>\n\n\n\n<p>un izmantot \u0161\u0101di:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">const prefilledArray = getPrefiledArray(0, 10);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Visp\u0101r\u012bgi ierobe\u017eojumi<\/h2>\n\n\n\n<p>Apl\u016bkosim citus, iesp\u0113jams, bie\u017e\u0101k sastopamus gad\u012bjumus. K\u0101p\u0113c m\u0113s paties\u012bb\u0101 izmantojam tipus funkcij\u0101s? Man tas ir, lai nodro\u0161in\u0101tu, ka funkcijai nodotajiem argumentiem b\u016bs k\u0101das \u012bpa\u0161\u012bbas, ar kur\u0101m es v\u0113los mijiedarboties.<\/p>\n\n\n\n<p>V\u0113lreiz m\u0113\u0123in\u0101sim p\u0101rnest vienk\u0101r\u0161u vani\u013cas JS funkciju uz TS.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">funkcija getLength(lieta) {\n    return thing.length;\n}<\/code><\/pre>\n\n\n\n<p>Mums ir netrivi\u0101la m\u012bkla - k\u0101 nodro\u0161in\u0101t, ka lieta ir <code>garums<\/code> \u012bpa\u0161umu, un pirm\u0101 doma var b\u016bt, ka j\u0101dara kaut kas l\u012bdz\u012bgs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">funkcija getLength(thing: typeof Array):number {\n    return thing.length;\n}<\/code><\/pre>\n\n\n\n<p>un atkar\u012bb\u0101 no konteksta tas var\u0113tu b\u016bt pareizi, kopum\u0101 m\u0113s esam mazliet visp\u0101r\u012bgi - tas darbosies ar vair\u0101ku tipu mas\u012bviem, bet ko dar\u012bt, ja m\u0113s \u012bsti nezin\u0101m, vai lietai vienm\u0113r j\u0101b\u016bt mas\u012bvam - varb\u016bt lieta ir futbola laukums vai ban\u0101na mizi\u0146a? \u0160\u0101d\u0101 gad\u012bjum\u0101 mums ir j\u0101apkopo \u0161\u012bs lietas kop\u012bg\u0101s \u012bpa\u0161\u012bbas t\u0101d\u0101 konstrukcij\u0101, kas var defin\u0113t objekta \u012bpa\u0161\u012bbas - interfeis\u0101:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">interfeiss IThingWithLength {\n  garums: skaitlis;\n}<\/code><\/pre>\n\n\n\n<p>M\u0113s varam izmantot <code>IThingWithLength<\/code> interfeiss k\u0101 tips <code>lieta<\/code> parametrs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">funkcija getLength(thing: IThingWithLength):number {\n    return thing.length;\n}<\/code><\/pre>\n\n\n\n<p>\u0161aj\u0101 vienk\u0101r\u0161aj\u0101 piem\u0113r\u0101 tas b\u016bs piln\u012bgi k\u0101rt\u012bb\u0101, bet, ja m\u0113s v\u0113lamies, lai \u0161is tips b\u016btu visp\u0101r\u012bgs un nerastos pirmaj\u0101 piem\u0113r\u0101 min\u0113t\u0101 probl\u0113ma, m\u0113s varam izmantot <strong>Visp\u0101r\u012bgi ierobe\u017eojumi<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">funkcija getLength(thing: T):number {\n    return thing.length;\n}<\/code><\/pre>\n\n\n\n<p>un izmantot to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">interfeiss IBananaPeel {\n  biezums: skaits;\n  garums: skaits;\n}\n\nconst bananaPeel: IBananaPeel = {thickness: 0.2, length: 3.14};\ngetLength(bananaPeel);<\/code><\/pre>\n\n\n\n<p>Izmantojot <code>papla\u0161ina<\/code> nodro\u0161ina, ka <code>T<\/code> satur\u0113s \u012bpa\u0161\u012bbas, kas defin\u0113tas ar <code>IThingWithLength<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Visp\u0101r\u012bg\u0101s klases<\/h2>\n\n\n\n<p>L\u012bdz \u0161im m\u0113s str\u0101d\u0101j\u0101m ar visp\u0101r\u012bgaj\u0101m funkcij\u0101m, bet t\u0101 nav vien\u012bg\u0101 vieta, kur visp\u0101r\u012bg\u0101s funkcijas sp\u012bd, t\u0101p\u0113c paskat\u012bsimies, k\u0101 m\u0113s varam t\u0101s iek\u013caut klas\u0113s.<\/p>\n\n\n\n<p>Vispirms m\u0113\u0123in\u0101sim ban\u0101nu groz\u0101 uzglab\u0101t ban\u0101nu \u0137ekarus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">klase Ban\u0101ns {\n  konstruktors(\n    public length: numurs,\n    public color: string,\n    public ionizingRadiation: number\n  ) {}\n}\n\nklase BananaBasket {\n  private bananas: Banana[] = [];\n\n  add(banana: Banana): void {\n    this.bananas.push(banana);\n  }\n}\n\nconst bananaBasket = new BananaBasket();\nbananaBasket.add(new Banana(3.14, \u2018red\u2019, 10e-7));<\/code><\/pre>\n\n\n\n<p>Tagad m\u0113\u0123in\u0101sim izveidot visp\u0101r\u0113jas noz\u012bmes grozu, lai da\u017e\u0101das lietas ar to pa\u0161u tipu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">klase Grozs {\n  private stuff: T[] = [];\n\n  add(lieta: T): void {\n    this.stuff.push(thing);\n  }\n}\n\nconst bananaBasket = new Basket();<\/code><\/pre>\n\n\n\n<p>Un visbeidzot, pie\u0146emsim, ka m\u016bsu grozs ir radioakt\u012bvo materi\u0101lu konteiners un m\u0113s varam uzglab\u0101t tikai t\u0101das vielas, kur\u0101m ir. <code>joniz\u0113jo\u0161\u0101 radi\u0101cija<\/code> \u012bpa\u0161ums:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">interfeiss IRadioactive {\n  ionizingRadiation: skaits;\n}\n\nklase RadioactiveContainer {\n  private stuff: T[] = [];\n\n  add(thing: T): void {\n    this.stuff.push(thing);\n  }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Visp\u0101r\u012bg\u0101 saskarne<\/h2>\n\n\n\n<p>Visbeidzot, m\u0113\u0123in\u0101sim apkopot visas savas zin\u0101\u0161anas un izveidot radioakt\u012bvo imp\u0113riju, izmantojot ar\u012b visp\u0101r\u012bg\u0101s saskarnes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"typescript\" class=\"language-typescript\">\/\/ Defin\u0113t konteineru kop\u012bgos atrib\u016btus\ninterfeiss IRadioactive {\n  ionizingRadiation: number;\n}\n\n\n\/\/ Defin\u0113 kaut ko, kas ir radioakt\u012bvs\ninterfeiss IBanana extends IRadioactive {\n  garums: skaits;\n  color: string;\n}\n\n\/\/ Defin\u0113 kaut ko, kas nav radioakt\u012bvs\nInterfeiss IDog {\n  weight: skaitlis;\n}\n\n\/\/ Defin\u0113 interfeisu konteineram, kur\u0101 var glab\u0101t tikai radioakt\u012bvas lietas\ninterfeiss IRadioactiveContainer {\n  add(thing: T): void;\n  getRadioactiveness():number;\n}\n\n\/\/ Defin\u0113t klasi, kas \u012bsteno radioakt\u012bv\u0101 konteinera saskarni\nklase RadioactiveContainer implements IRadioactiveContainer {\n  private stuff: T[] = [];\n\n  add(thing: T): void {\n    this.stuff.push(thing);\n  }\n\n  getRadioactiveness(): number {\n      return this.stuff.reduce((a, b) =&gt; a + b.ionizingRadiation, 0)\n  }\n}\n\n\/\/ K\u013b\u016aDA! Tips 'IDog' neatbilst ierobe\u017eojumam 'IRadioactive'\n\/\/ Un ir diezgan brut\u0101li glab\u0101t su\u0146us radioakt\u012bv\u0101 konteiner\u0101.\nconst dogsContainer = new RadioactiveContainer();\n\n\/\/ All good fam!\nconst radioactiveContainer = new RadioactiveContainer();\n\n\/\/ Neaizmirstiet \u0161\u0137irot radioakt\u012bvos atkritumus - izveidojiet atsevi\u0161\u0137u tvertni tikai ban\u0101niem.\nconst bananasContainer = new RadioactiveContainer();<\/code><\/pre>\n\n\n\n<p>Tas ir viss, draugi!<\/p>","protected":false},"excerpt":{"rendered":"<p>\u0122enerikas nodro\u0161ina atk\u0101rtoti lietojamus koda fragmentus, kas darbojas ar vair\u0101kiem tipiem, nevis tikai ar vienu tipu. \u0122enerikas nodro\u0161ina veidu, k\u0101 uzskat\u012bt tipu par main\u012bgo un nor\u0101d\u012bt to lieto\u0161anas laik\u0101, l\u012bdz\u012bgi k\u0101 funkciju parametrus.<\/p>","protected":false},"author":2,"featured_media":3249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3248","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Generics in TypeScript - The Codest<\/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:\/\/thecodest.co\/lv\/emuars\/generiskie-tipveida-rakstiba\/\" \/>\n<meta property=\"og:locale\" content=\"lv_LV\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Generics in TypeScript\" \/>\n<meta property=\"og:description\" content=\"Generics provide reusable bits of code that work with a number of types instead of a single type. Generics provide a way to treat type as a variable and specify it on usage, similar to function parameters.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/lv\/emuars\/generiskie-tipveida-rakstiba\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-13T08:52:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:39:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-75.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 min\u016btes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Generics in TypeScript\",\"datePublished\":\"2020-07-13T08:52:00+00:00\",\"dateModified\":\"2026-04-24T11:39:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/\"},\"wordCount\":516,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-75.jpg\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"lv-LV\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/\",\"name\":\"Generics in TypeScript - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-75.jpg\",\"datePublished\":\"2020-07-13T08:52:00+00:00\",\"dateModified\":\"2026-04-24T11:39:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/#breadcrumb\"},\"inLanguage\":\"lv-LV\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"lv-LV\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-75.jpg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-75.jpg\",\"width\":1200,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/generics-in-typescript\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Generics in TypeScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"lv-LV\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"lv-LV\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"lv-LV\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/lv\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"TypeScript - The Codest visp\u0101r\u012bgie nosaukumi","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:\/\/thecodest.co\/lv\/emuars\/generiskie-tipveida-rakstiba\/","og_locale":"lv_LV","og_type":"article","og_title":"Generics in TypeScript","og_description":"Generics provide reusable bits of code that work with a number of types instead of a single type. Generics provide a way to treat type as a variable and specify it on usage, similar to function parameters.","og_url":"https:\/\/thecodest.co\/lv\/emuars\/generiskie-tipveida-rakstiba\/","og_site_name":"The Codest","article_published_time":"2020-07-13T08:52:00+00:00","article_modified_time":"2026-04-24T11:39:03+00:00","og_image":[{"width":1200,"height":600,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-75.jpg","type":"image\/jpeg"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"3 min\u016btes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Generics in TypeScript","datePublished":"2020-07-13T08:52:00+00:00","dateModified":"2026-04-24T11:39:03+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/"},"wordCount":516,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-75.jpg","articleSection":["Software Development"],"inLanguage":"lv-LV","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/generics-in-typescript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/","url":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/","name":"TypeScript - The Codest visp\u0101r\u012bgie nosaukumi","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-75.jpg","datePublished":"2020-07-13T08:52:00+00:00","dateModified":"2026-04-24T11:39:03+00:00","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/#breadcrumb"},"inLanguage":"lv-LV","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/generics-in-typescript\/"]}]},{"@type":"ImageObject","inLanguage":"lv-LV","@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-75.jpg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-75.jpg","width":1200,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/generics-in-typescript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Generics in TypeScript"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"lv-LV"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"lv-LV","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"lv-LV","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/lv\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/posts\/3248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/comments?post=3248"}],"version-history":[{"count":9,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/posts\/3248\/revisions"}],"predecessor-version":[{"id":7822,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/posts\/3248\/revisions\/7822"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/media\/3249"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/media?parent=3248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/categories?post=3248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/lv\/wp-json\/wp\/v2\/tags?post=3248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}