{"id":10014,"date":"2022-01-27T19:17:55","date_gmt":"2022-01-27T18:17:55","guid":{"rendered":"https:\/\/vived.io\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/"},"modified":"2022-09-19T13:16:32","modified_gmt":"2022-09-19T11:16:32","slug":"frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/","title":{"rendered":"Frontend Thursday vol. 73 &#8211; TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC"},"content":{"rendered":"\n<h2 id=\"1-typescript-46-beta\" data-num=1>1. TypeScript 4,6 Beta<\/h2>\n\n\n\n<p>W minionym tygodniu Microsoft pokaza\u0142 bet\u0119 kolejnej wersji j\u0119zyka TypeScript. Oznacza to, \u017ce pe\u0142nego wydania mo\u017cemy spodziewa\u0107 si\u0119 ju\u017c za kilka tygodni. Najnowsza wersja oznaczona jest numerkiem 4.6 i nie przynosi co prawda wielkich rewolucji, ale my\u015bl\u0119, \u017ce warto przygl\u0105dn\u0105\u0107 si\u0119 nadchodz\u0105cym zmianom.<\/p>\n\n\n\n<p>Zacznijmy od naprawy drobnej niekompatybilno\u015bci pomi\u0119dzy JavaScriptem i TypeScriptem. Ten pierwszy w konstruktorze klasy umo\u017cliwia umieszczenie fragmentu kodu przed wywo\u0142aniem super, pod warunkiem \u017ce fragment ten nie odwo\u0142uje si\u0119 do this. TypeScript do tej pory na etapie kompilacji wymaga\u0142, aby wywo\u0142anie super by\u0142o pierwsz\u0105 akcj\u0105 wywo\u0142ywan\u0105 w konstruktorze, Od wersji 4.6 zachowanie to ma zosta\u0107 usp\u00f3jnione.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\" data-line=\"\">class Base {\n    \/\/ ...\n}\n\nclass Derived extends Base {\n    someProperty = true;\n\n    constructor() {\n        \/\/ previously: error! have to call &#039;super()&#039; first because it needs to initialize &#039;someProperty&#039;.\n        doSomeStuff();\n        super();\n    }\n}<\/code><\/pre>\n\n\n\n<p>Czasami spos\u00f3b w jaki dzia\u0142a kompilator TypeScript potrafi mnie kompletnie zaskoczy\u0107. Nie inaczej by\u0142o i tym razem, gdy z notatki od Microsoft dowiedzia\u0142em si\u0119, \u017ce kiedy kompilator sprawdza czy dwa typy mog\u0105 zosta\u0107 do siebie przypisane, to przy osi\u0105gni\u0119ciu odpowiedniego poziomu rekurencji zak\u0142ada on, \u017ce typy s\u0105 kompatybilne. Mimo, \u017ce na pierwszy rzut oka wygl\u0105da to przera\u017caj\u0105co, po g\u0142\u0119bszym zastanowieniu logika ta ma oczywi\u015bcie sporo sensu. Ze wzgl\u0119du na zastosowanie strukturalnego typowanie,\u00a0 niemo\u017cliwe jest por\u00f3wnanie definicji obiekt\u00f3w, co stanowi wyzwanie w sytuacji, gdy poprzez odpowiednie zastosowanie generyk\u00f3w da si\u0119 zdefiniowa\u0107 klas\u0119 o niesko\u0144czonej definicji. Usprawnienie, kt\u00f3re przygotowa\u0142 Microsoft nie rozwi\u0105zuje ca\u0142kowicie problem\u00f3w strukturalnego typowania, ale sprawia \u017ce TypeScript w niekt\u00f3rych przypadkach b\u0119dzie w stanie wykry\u0107 niekompatybilno\u015bci pomi\u0119dzy dwoma bardzo zagnie\u017cd\u017conymi typami.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\" data-line=\"\">interface Source&lt;T&gt; {\n    prop: Source&lt;Source&lt;T&gt;&gt;;\n}\n\ninterface Target&lt;T&gt; {\n    prop: Target&lt;Target&lt;T&gt;&gt;;\n}\n\nfunction check(source: Source&lt;string&gt;, target: Target&lt;number&gt;) {\n    \/\/ Resolving those types structure will result in an infinite loop. \n    \/\/ Because of that compiler uses depth heuristic\n    target = source;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\" data-line=\"\">interface Foo&lt;T&gt; {\n    prop: T;\n}\n\ndeclare let x: Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;string&gt;&gt;&gt;&gt;&gt;&gt;;\ndeclare let y: Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;string&gt;&gt;&gt;&gt;&gt;;\n\n\/\/ In TypeScript 4.5 this will work ok. In TypeScript 4.6 compiler will return error\nx = y;<\/code><\/pre>\n\n\n\n<p>Ostatni\u0105 interesuj\u0105c\u0105 nowo\u015bci\u0105 jest lepsze wsparcie dla typ\u00f3w zale\u017cnych. Co tu du\u017co m\u00f3wi\u0107, ma\u0142a rzecz, a cieszy.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\" data-line=\"\">type Func = (...args: [&quot;a&quot;, number] | [&quot;b&quot;, string]) =&gt; void;\n\nconst f1: Func = (kind, payload) =&gt; {\n    if (kind === &quot;a&quot;) {\n        payload.toFixed();  \/\/ &#039;payload&#039; narrowed to &#039;number&#039;\n    }\n    if (kind === &quot;b&quot;) {\n        payload.toUpperCase();  \/\/ &#039;payload&#039; narrowed to &#039;string&#039;\n    }\n};\n\nf1(&quot;a&quot;, 42);\nf1(&quot;b&quot;, &quot;hello&quot;);<\/code><\/pre>\n\n\n\n<p>A Wy jak oceniacie nowego TypeScripta? Ja przyznam szczerze nie czekam z wypiekami na twarzy na \u017cadn\u0105 z funkcjonalno\u015bci zaprezentowanych w notatce od Microsoft, ale traktuj\u0119 to jako pewien wyznacznik dojrza\u0142o\u015bci jak\u0105 osi\u0105gn\u0105\u0142 ju\u017c TypeScript.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"480\" height=\"436\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/giphy-2-1.gif\" alt=\"\" class=\"wp-image-3730\"\/><figcaption>Autor Frontendoweg Czwartku czytaj\u0105cy o nowych funkcjonalno\u015bciach TypeScript (pozdrawiam wszystkich ziewaj\u0105cych w tym momencie \ud83d\ude09 )<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zrodla\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/devblogs.microsoft.com\/typescript\/announcing-typescript-4-6-beta\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/devblogs.microsoft.com\/typescript\/announcing-typescript-4-6-beta\/<\/a><\/p>\n\n\n\n<h2 id=\"2-google-przygotowal-alternatywe-dla-floc\" data-num=2>2. Google przygotowa\u0142 alternatyw\u0119 dla FLoC<\/h2>\n\n\n\n<p>FLoC by\u0142 tematem, kt\u00f3ry na przestrzeni zesz\u0142ego roku przewija\u0142 si\u0119 w nag\u0142\u00f3wkach bardzo regularnie. Je\u015bli nie s\u0142yszeli\u015bcie jeszcze o Federated Learning of Cohorts to jest to algorytm, kt\u00f3ry po stronie klienta analizuje histori\u0119 przegl\u0105dania i przypisuje u\u017cytkownika do odpowiedniej kohorty. W wst\u0119pnym rozwi\u0105zaniu przygotowanym przez Google kohort by\u0142o 256, ale rozwa\u017cane by\u0142o r\u00f3wnie\u017c zwi\u0119kszenie tej liczby do zawrotnych 65 536. Dzi\u0119ki zastosowaniu FLoC dane o aktywno\u015bci u\u017cytkownika nigdy nie opuszcza\u0142y by jego przegl\u0105darki, a r\u00f3wnocze\u015bnie reklamodawcy nie traciliby mo\u017cliwo\u015bci precyzyjnego targetowania swoich reklam.<\/p>\n\n\n\n<p>Ju\u017c przy pierwszych beta testach firmy stawiaj\u0105ce na prywatno\u015b\u0107 swoich u\u017cytkownik\u00f3w, takie jak Apple, Mozilla czy Brave zwr\u00f3ci\u0142y uwag\u0119, \u017ce w tej beczce miodu jest te\u017c \u0142y\u017cka dziegciu. I to ca\u0142kiem spora \u0142y\u017cka. Do tej pory, je\u015bli portal chcia\u0142 jednoznacznie zidentyfikowa\u0107 u\u017cytkownika, to musia\u0142 przeanalizowa\u0107 kilka milion\u00f3w rekord\u00f3w. Po wdro\u017ceniu nowego rozwi\u0105zania liczba ta zmniejszy\u0142a by si\u0119 nawet do zaledwie kilku tysi\u0119cy, bo strony b\u0119d\u0105 mog\u0142y odczyta\u0107 id kohorty i w ten spos\u00f3b mocno zaw\u0119zi\u0107 obszar poszukiwa\u0144. Ponadto, je\u015bli na stronie logujemy si\u0119 za pomoc\u0105 maila, to natychmiast mo\u017cna by powi\u0105za\u0107 nas z naszymi zainteresowaniami, a nawet zapisa\u0107 je u siebie na serwerze. Wbijaj\u0105c ostatni gw\u00f3\u017ad\u017a do trumny, generowanie kohort odbywa\u0142oby si\u0119 na podstawie ca\u0142ej historii przegl\u0105danych stron, nie tylko takich, kt\u00f3re u\u017cywaj\u0105 odpowiednich narz\u0119dzi do \u015bledzenia u\u017cytkownika.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"500\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w20t.jpeg\" alt=\"\" class=\"wp-image-3723\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w20t.jpeg 666w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w20t-300x225.jpeg 300w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/figure><\/div>\n\n\n\n<p>Pod koniec zesz\u0142ego roku Google og\u0142osi\u0142, \u017ce wycofuje si\u0119 z plan\u00f3w wdro\u017cenie FLoC na szerok\u0105 skal\u0119 i nied\u0142ugo zaproponuje lepsze rozwi\u0105zanie. W minionym tygodniu do sieci trafi\u0142y pierwsze techniczne dokumenty opisuj\u0105ce alternatyw\u0119, jak\u0105 planuj\u0105 zaimplementowa\u0107 programi\u015bci z Google. Zamiast przypisywa\u0107 u\u017cytkownika do jednej kohorty, b\u0119dzie on przypisywany do listy temat\u00f3w, kt\u00f3rymi si\u0119 interesuje. Te za\u015b nie b\u0119d\u0105 dla stron publicznie dost\u0119pne. Kiedy strona poprosi o tematy przypisane do u\u017cytkownika, przegl\u0105darka zwr\u00f3ci nie wszystkie, a ich losowo wybrany podzbi\u00f3r. W ten spos\u00f3b portale zyska\u0107 maj\u0105 cenne informacje umo\u017cliwiaj\u0105ce profilowanie reklam, ale r\u00f3wnocze\u015bnie informacji tych ma by\u0107 na tyle ma\u0142o, \u017ce nie mo\u017cliwe b\u0119dzie pe\u0142ne sprofilowanie u\u017cytkownika. Na ten moment nie wiadomo jeszcze, jak du\u017ca b\u0119dzie lista temat\u00f3w do kt\u00f3rych przypisany b\u0119dzie m\u00f3g\u0142 zosta\u0107 u\u017cytkownik, ale Google zapowiada, \u017ce b\u0119d\u0105 one mocno og\u00f3lne. Dla przyk\u0142adu, w\u015br\u00f3d temat\u00f3w znajdziemy zapewne taki dotycz\u0105cy ps\u00f3w, ale nie znajdziemy ju\u017c \u017cadnego dotycz\u0105cego ich konkretnej rasy.<\/p>\n\n\n\n<p>Wygl\u0105da na to, \u017ce tematy rzeczywi\u015bcie adresuj\u0105 wiele z problem\u00f3w, z kt\u00f3rymi boryka\u0142 si\u0119 FLoC. Wci\u0105\u017c nierozwi\u0105zane pozostaje kontrowersje zwi\u0105zne ze \u015bledzeniem aktywno\u015bci u\u017cytkownika na wszystkich odwiedzanych przez niego stronach. Do tego dochodzi jeszcze problem z mo\u017cliwo\u015bci\u0105 manipulowania przez przegl\u0105darki losowo\u015bci\u0105 dostarczanych portalom temat\u00f3w, tak aby zaszkodzi\u0107 konkurencji. No c\u00f3\u017c &#8211; ja z niecierpliwo\u015bci\u0105 czekam na odpowied\u017a ze strony takich firm jak Brave czy Mozilla.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"976\" height=\"1024\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/img_6128bb16dece3-976x1024.png\" alt=\"\" class=\"wp-image-3724\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/img_6128bb16dece3-976x1024.png 976w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/img_6128bb16dece3-286x300.png 286w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/img_6128bb16dece3-768x805.png 768w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/img_6128bb16dece3.png 1352w\" sizes=\"auto, (max-width: 976px) 100vw, 976px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zrodla-1\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.tomsguide.com\/news\/google-kills-floc-debuts-topics\">https:\/\/www.tomsguide.com\/news\/google-kills-floc-debuts-topics<\/a><\/p>\n\n\n\n<h2 id=\"3-deno-w-2022-pora-przygotowac-sie-na-deno-2\" data-num=3>3. Deno w 2022 &#8211; pora przygotowa\u0107 si\u0119 na Deno 2!<\/h2>\n\n\n\n<p>2021 by\u0142 dla Deno bardzo dobrym rokiem. Od stycznia do grudnia opublikowanych zosta\u0142o a\u017c 10 wersji tego \u015brodowiska uruchomieniowego. W\u015br\u00f3d nowych funkcjonalno\u015bci znalaz\u0142y si\u0119 takie usprawnienia jak mo\u017cliwo\u015b\u0107 uruchamiania kodu napisanego w Rust, nowy modu\u0142 http czy tryb kompatybilno\u015bci z modu\u0142ami pisanymi dla Node.js. Deno trafi\u0142 r\u00f3wnie\u017c do tabeli wsparcia w dokumentacji MDN, co wielu uznaje za oficjalne przyj\u0119cie do pierwszej ligi.<\/p>\n\n\n\n<p>Poza prac\u0105 nad kolejnymi funkcjonalno\u015bciami zesp\u00f3\u0142 odpowiedzialny za Deno przekszta\u0142ci\u0142 si\u0119 w pe\u0142noprawn\u0105 firm\u0119 i zebra\u0142 dofinansowanie w wysoko\u015bci 4.9 miliona dolar\u00f3w. W minionym roku firma opublikowa\u0142a tak\u017ce sw\u00f3j pierwszy produkt &#8211; chmurowe \u015brodowisko uruchomieniowe dla Deno o nazwie Deno Deploy.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"465\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w2zb.jpeg\" alt=\"\" class=\"wp-image-3725\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w2zb.jpeg 620w, https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w2zb-300x225.jpeg 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure><\/div>\n\n\n\n<p>To co jest zdecydowanie ciekawsze od przesz\u0142o\u015bci Deno to jego przysz\u0142o\u015b\u0107. W 2022 zesp\u00f3\u0142 rozwijaj\u0105cy to \u015brodowisko uruchomieniowe planuje rozpocz\u0105\u0107 prac\u0119 nad Deno 2.0. Premiera zaplanowana jest jeszcze w pierwszej po\u0142owie tego roku. Wydanie to skupia\u0107 si\u0119 b\u0119dzie na lepszym wsparciu dla \u015brodowiska npm, poprawieniu Developer Experience i ma otworzy\u0107 drog\u0119 dla alternatywnych sposob\u00f3w zarz\u0105dzania paczkami. Trzeba przyzna\u0107, \u017ce jest na co czeka\u0107!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zrodla-2\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/deno.com\/blog\/deno-in-2021\">https:\/\/deno.com\/blog\/deno-in-2021<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Miniony tydzie\u0144 zdominowa\u0142y informacj\u0119 o zbli\u017caj\u0105cej si\u0119 nowej wersji TypeScript oraz alternatywie dla FLoC jak\u0105 zaproponowa\u0142 Google. Troch\u0119 z boku przesz\u0142a r\u00f3wnie\u017c nie ma\u0142a zapowied\u017a Deno 2! Przygotujcie sobie co\u015b ciep\u0142ego do picia i \u017cyczymy mi\u0142ej lektury!<\/p>\n","protected":false},"author":12,"featured_media":7909,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[273],"tags":[],"class_list":["post-10014","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-frontend-pl"],"acf":{"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-2.png","estimated_reading_time":"6","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Frontend Thursday vol. 73 - TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC - Vived<\/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:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Frontend Thursday vol. 73 - TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC - Vived\" \/>\n<meta property=\"og:description\" content=\"Miniony tydzie\u0144 zdominowa\u0142y informacj\u0119 o zbli\u017caj\u0105cej si\u0119 nowej wersji TypeScript oraz alternatywie dla FLoC jak\u0105 zaproponowa\u0142 Google. Troch\u0119 z boku przesz\u0142a r\u00f3wnie\u017c nie ma\u0142a zapowied\u017a Deno 2! Przygotujcie sobie co\u015b ciep\u0142ego do picia i \u017cyczymy mi\u0142ej lektury!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-27T18:17:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:16:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tomasz Borowicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-2.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/\"},\"author\":{\"name\":\"Tomasz Borowicz\",\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#\\\/schema\\\/person\\\/9d2a72fe7d0dfbb4092675afbab742bb\"},\"headline\":\"Frontend Thursday vol. 73 &#8211; TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC\",\"datePublished\":\"2022-01-27T18:17:55+00:00\",\"dateModified\":\"2022-09-19T11:16:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/\"},\"wordCount\":1121,\"publisher\":{\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vived.io\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/pexels-noelle-otto-906018-scaled.jpg\",\"articleSection\":[\"Frontend\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/\",\"url\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/\",\"name\":\"Frontend Thursday vol. 73 - TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC - Vived\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vived.io\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/pexels-noelle-otto-906018-scaled.jpg\",\"datePublished\":\"2022-01-27T18:17:55+00:00\",\"dateModified\":\"2022-09-19T11:16:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vived.io\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/pexels-noelle-otto-906018-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/vived.io\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/pexels-noelle-otto-906018-scaled.jpg\",\"width\":2560,\"height\":1871},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vived.io\\\/pl\\\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/vived.io\\\/pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend Thursday vol. 73 &#8211; TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#website\",\"url\":\"https:\\\/\\\/3.68.244.71\\\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/3.68.244.71\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#organization\",\"name\":\"Vived\",\"url\":\"https:\\\/\\\/3.68.244.71\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/vived.io\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/logo_vived_color.png\",\"contentUrl\":\"https:\\\/\\\/vived.io\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/3.68.244.71\\\/#\\\/schema\\\/person\\\/9d2a72fe7d0dfbb4092675afbab742bb\",\"name\":\"Tomasz Borowicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"caption\":\"Tomasz Borowicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Frontend Thursday vol. 73 - TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC - Vived","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:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/","og_locale":"pl_PL","og_type":"article","og_title":"Frontend Thursday vol. 73 - TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC - Vived","og_description":"Miniony tydzie\u0144 zdominowa\u0142y informacj\u0119 o zbli\u017caj\u0105cej si\u0119 nowej wersji TypeScript oraz alternatywie dla FLoC jak\u0105 zaproponowa\u0142 Google. Troch\u0119 z boku przesz\u0142a r\u00f3wnie\u017c nie ma\u0142a zapowied\u017a Deno 2! Przygotujcie sobie co\u015b ciep\u0142ego do picia i \u017cyczymy mi\u0142ej lektury!","og_url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/","og_site_name":"Vived","article_published_time":"2022-01-27T18:17:55+00:00","article_modified_time":"2022-09-19T11:16:32+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-2.png","type":"image\/png"}],"author":"Tomasz Borowicz","twitter_card":"summary_large_image","twitter_image":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/FRONTEND-2.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/"},"author":{"name":"Tomasz Borowicz","@id":"https:\/\/3.68.244.71\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb"},"headline":"Frontend Thursday vol. 73 &#8211; TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC","datePublished":"2022-01-27T18:17:55+00:00","dateModified":"2022-09-19T11:16:32+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/"},"wordCount":1121,"publisher":{"@id":"https:\/\/3.68.244.71\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-noelle-otto-906018-scaled.jpg","articleSection":["Frontend"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/","url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/","name":"Frontend Thursday vol. 73 - TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC - Vived","isPartOf":{"@id":"https:\/\/3.68.244.71\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-noelle-otto-906018-scaled.jpg","datePublished":"2022-01-27T18:17:55+00:00","dateModified":"2022-09-19T11:16:32+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-noelle-otto-906018-scaled.jpg","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/pexels-noelle-otto-906018-scaled.jpg","width":2560,"height":1871},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-73-typescript-4-6-beta-google-proponuje-alternatywe-dla-floc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Frontend Thursday vol. 73 &#8211; TypeScript 4.6 beta, Google proponuje alternatyw\u0119 dla FLoC"}]},{"@type":"WebSite","@id":"https:\/\/3.68.244.71\/#website","url":"https:\/\/3.68.244.71\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/3.68.244.71\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/3.68.244.71\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/3.68.244.71\/#organization","name":"Vived","url":"https:\/\/3.68.244.71\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/3.68.244.71\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/3.68.244.71\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/3.68.244.71\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb","name":"Tomasz Borowicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","caption":"Tomasz Borowicz"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 id=\"1-typescript-4-6-beta\">1. TypeScript 4,6 Beta<\/h2>\n","innerContent":["\n<h2 id=\"1-typescript-4-6-beta\">1. TypeScript 4,6 Beta<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W minionym tygodniu Microsoft pokaza\u0142 bet\u0119 kolejnej wersji j\u0119zyka TypeScript. Oznacza to, \u017ce pe\u0142nego wydania mo\u017cemy spodziewa\u0107 si\u0119 ju\u017c za kilka tygodni. Najnowsza wersja oznaczona jest numerkiem 4.6 i nie przynosi co prawda wielkich rewolucji, ale my\u015bl\u0119, \u017ce warto przygl\u0105dn\u0105\u0107 si\u0119 nadchodz\u0105cym zmianom.<\/p>\n","innerContent":["\n<p>W minionym tygodniu Microsoft pokaza\u0142 bet\u0119 kolejnej wersji j\u0119zyka TypeScript. Oznacza to, \u017ce pe\u0142nego wydania mo\u017cemy spodziewa\u0107 si\u0119 ju\u017c za kilka tygodni. Najnowsza wersja oznaczona jest numerkiem 4.6 i nie przynosi co prawda wielkich rewolucji, ale my\u015bl\u0119, \u017ce warto przygl\u0105dn\u0105\u0107 si\u0119 nadchodz\u0105cym zmianom.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Zacznijmy od naprawy drobnej niekompatybilno\u015bci pomi\u0119dzy JavaScriptem i TypeScriptem. Ten pierwszy w konstruktorze klasy umo\u017cliwia umieszczenie fragmentu kodu przed wywo\u0142aniem super, pod warunkiem \u017ce fragment ten nie odwo\u0142uje si\u0119 do this. TypeScript do tej pory na etapie kompilacji wymaga\u0142, aby wywo\u0142anie super by\u0142o pierwsz\u0105 akcj\u0105 wywo\u0142ywan\u0105 w konstruktorze, Od wersji 4.6 zachowanie to ma zosta\u0107 usp\u00f3jnione.<\/p>\n","innerContent":["\n<p>Zacznijmy od naprawy drobnej niekompatybilno\u015bci pomi\u0119dzy JavaScriptem i TypeScriptem. Ten pierwszy w konstruktorze klasy umo\u017cliwia umieszczenie fragmentu kodu przed wywo\u0142aniem super, pod warunkiem \u017ce fragment ten nie odwo\u0142uje si\u0119 do this. TypeScript do tej pory na etapie kompilacji wymaga\u0142, aby wywo\u0142anie super by\u0142o pierwsz\u0105 akcj\u0105 wywo\u0142ywan\u0105 w konstruktorze, Od wersji 4.6 zachowanie to ma zosta\u0107 usp\u00f3jnione.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"typescript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\">class Base {\n    \/\/ ...\n}\n\nclass Derived extends Base {\n    someProperty = true;\n\n    constructor() {\n        \/\/ previously: error! have to call 'super()' first because it needs to initialize 'someProperty'.\n        doSomeStuff();\n        super();\n    }\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\">class Base {\n    \/\/ ...\n}\n\nclass Derived extends Base {\n    someProperty = true;\n\n    constructor() {\n        \/\/ previously: error! have to call 'super()' first because it needs to initialize 'someProperty'.\n        doSomeStuff();\n        super();\n    }\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Czasami spos\u00f3b w jaki dzia\u0142a kompilator TypeScript potrafi mnie kompletnie zaskoczy\u0107. Nie inaczej by\u0142o i tym razem, gdy z notatki od Microsoft dowiedzia\u0142em si\u0119, \u017ce kiedy kompilator sprawdza czy dwa typy mog\u0105 zosta\u0107 do siebie przypisane, to przy osi\u0105gni\u0119ciu odpowiedniego poziomu rekurencji zak\u0142ada on, \u017ce typy s\u0105 kompatybilne. Mimo, \u017ce na pierwszy rzut oka wygl\u0105da to przera\u017caj\u0105co, po g\u0142\u0119bszym zastanowieniu logika ta ma oczywi\u015bcie sporo sensu. Ze wzgl\u0119du na zastosowanie strukturalnego typowanie,\u00a0 niemo\u017cliwe jest por\u00f3wnanie definicji obiekt\u00f3w, co stanowi wyzwanie w sytuacji, gdy poprzez odpowiednie zastosowanie generyk\u00f3w da si\u0119 zdefiniowa\u0107 klas\u0119 o niesko\u0144czonej definicji. Usprawnienie, kt\u00f3re przygotowa\u0142 Microsoft nie rozwi\u0105zuje ca\u0142kowicie problem\u00f3w strukturalnego typowania, ale sprawia \u017ce TypeScript w niekt\u00f3rych przypadkach b\u0119dzie w stanie wykry\u0107 niekompatybilno\u015bci pomi\u0119dzy dwoma bardzo zagnie\u017cd\u017conymi typami.<\/p>\n","innerContent":["\n<p>Czasami spos\u00f3b w jaki dzia\u0142a kompilator TypeScript potrafi mnie kompletnie zaskoczy\u0107. Nie inaczej by\u0142o i tym razem, gdy z notatki od Microsoft dowiedzia\u0142em si\u0119, \u017ce kiedy kompilator sprawdza czy dwa typy mog\u0105 zosta\u0107 do siebie przypisane, to przy osi\u0105gni\u0119ciu odpowiedniego poziomu rekurencji zak\u0142ada on, \u017ce typy s\u0105 kompatybilne. Mimo, \u017ce na pierwszy rzut oka wygl\u0105da to przera\u017caj\u0105co, po g\u0142\u0119bszym zastanowieniu logika ta ma oczywi\u015bcie sporo sensu. Ze wzgl\u0119du na zastosowanie strukturalnego typowanie,\u00a0 niemo\u017cliwe jest por\u00f3wnanie definicji obiekt\u00f3w, co stanowi wyzwanie w sytuacji, gdy poprzez odpowiednie zastosowanie generyk\u00f3w da si\u0119 zdefiniowa\u0107 klas\u0119 o niesko\u0144czonej definicji. Usprawnienie, kt\u00f3re przygotowa\u0142 Microsoft nie rozwi\u0105zuje ca\u0142kowicie problem\u00f3w strukturalnego typowania, ale sprawia \u017ce TypeScript w niekt\u00f3rych przypadkach b\u0119dzie w stanie wykry\u0107 niekompatybilno\u015bci pomi\u0119dzy dwoma bardzo zagnie\u017cd\u017conymi typami.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"typescript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\">interface Source&lt;T> {\n    prop: Source&lt;Source&lt;T>>;\n}\n\ninterface Target&lt;T> {\n    prop: Target&lt;Target&lt;T>>;\n}\n\nfunction check(source: Source&lt;string>, target: Target&lt;number>) {\n    \/\/ Resolving those types structure will result in an infinite loop. \n    \/\/ Because of that compiler uses depth heuristic\n    target = source;\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\">interface Source&lt;T> {\n    prop: Source&lt;Source&lt;T>>;\n}\n\ninterface Target&lt;T> {\n    prop: Target&lt;Target&lt;T>>;\n}\n\nfunction check(source: Source&lt;string>, target: Target&lt;number>) {\n    \/\/ Resolving those types structure will result in an infinite loop. \n    \/\/ Because of that compiler uses depth heuristic\n    target = source;\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"typescript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\">interface Foo&lt;T> {\n    prop: T;\n}\n\ndeclare let x: Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;string>>>>>>;\ndeclare let y: Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;string>>>>>;\n\n\/\/ In TypeScript 4.5 this will work ok. In TypeScript 4.6 compiler will return error\nx = y;<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\">interface Foo&lt;T> {\n    prop: T;\n}\n\ndeclare let x: Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;string>>>>>>;\ndeclare let y: Foo&lt;Foo&lt;Foo&lt;Foo&lt;Foo&lt;string>>>>>;\n\n\/\/ In TypeScript 4.5 this will work ok. In TypeScript 4.6 compiler will return error\nx = y;<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatni\u0105 interesuj\u0105c\u0105 nowo\u015bci\u0105 jest lepsze wsparcie dla typ\u00f3w zale\u017cnych. Co tu du\u017co m\u00f3wi\u0107, ma\u0142a rzecz, a cieszy.<\/p>\n","innerContent":["\n<p>Ostatni\u0105 interesuj\u0105c\u0105 nowo\u015bci\u0105 jest lepsze wsparcie dla typ\u00f3w zale\u017cnych. Co tu du\u017co m\u00f3wi\u0107, ma\u0142a rzecz, a cieszy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"typescript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\">type Func = (...args: [\"a\", number] | [\"b\", string]) => void;\n\nconst f1: Func = (kind, payload) => {\n    if (kind === \"a\") {\n        payload.toFixed();  \/\/ 'payload' narrowed to 'number'\n    }\n    if (kind === \"b\") {\n        payload.toUpperCase();  \/\/ 'payload' narrowed to 'string'\n    }\n};\n\nf1(\"a\", 42);\nf1(\"b\", \"hello\");<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-typescript\">type Func = (...args: [\"a\", number] | [\"b\", string]) => void;\n\nconst f1: Func = (kind, payload) => {\n    if (kind === \"a\") {\n        payload.toFixed();  \/\/ 'payload' narrowed to 'number'\n    }\n    if (kind === \"b\") {\n        payload.toUpperCase();  \/\/ 'payload' narrowed to 'string'\n    }\n};\n\nf1(\"a\", 42);\nf1(\"b\", \"hello\");<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A Wy jak oceniacie nowego TypeScripta? Ja przyznam szczerze nie czekam z wypiekami na twarzy na \u017cadn\u0105 z funkcjonalno\u015bci zaprezentowanych w notatce od Microsoft, ale traktuj\u0119 to jako pewien wyznacznik dojrza\u0142o\u015bci jak\u0105 osi\u0105gn\u0105\u0142 ju\u017c TypeScript.<\/p>\n","innerContent":["\n<p>A Wy jak oceniacie nowego TypeScripta? Ja przyznam szczerze nie czekam z wypiekami na twarzy na \u017cadn\u0105 z funkcjonalno\u015bci zaprezentowanych w notatce od Microsoft, ale traktuj\u0119 to jako pewien wyznacznik dojrza\u0142o\u015bci jak\u0105 osi\u0105gn\u0105\u0142 ju\u017c TypeScript.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3730,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/giphy-2-1.gif\" alt=\"\" class=\"wp-image-3730\"\/><figcaption>Autor Frontendoweg Czwartku czytaj\u0105cy o nowych funkcjonalno\u015bciach TypeScript (pozdrawiam wszystkich ziewaj\u0105cych w tym momencie ;) )<\/figcaption><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/giphy-2-1.gif\" alt=\"\" class=\"wp-image-3730\"\/><figcaption>Autor Frontendoweg Czwartku czytaj\u0105cy o nowych funkcjonalno\u015bciach TypeScript (pozdrawiam wszystkich ziewaj\u0105cych w tym momencie ;) )<\/figcaption><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 id=\"zrodla\">\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3 id=\"zrodla\">\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/devblogs.microsoft.com\/typescript\/announcing-typescript-4-6-beta\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/devblogs.microsoft.com\/typescript\/announcing-typescript-4-6-beta\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/devblogs.microsoft.com\/typescript\/announcing-typescript-4-6-beta\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/devblogs.microsoft.com\/typescript\/announcing-typescript-4-6-beta\/<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 id=\"2-google-przygotowal-alternatywe-dla-floc\">2. Google przygotowa\u0142 alternatyw\u0119 dla FLoC<\/h2>\n","innerContent":["\n<h2 id=\"2-google-przygotowal-alternatywe-dla-floc\">2. Google przygotowa\u0142 alternatyw\u0119 dla FLoC<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>FLoC by\u0142 tematem, kt\u00f3ry na przestrzeni zesz\u0142ego roku przewija\u0142 si\u0119 w nag\u0142\u00f3wkach bardzo regularnie. Je\u015bli nie s\u0142yszeli\u015bcie jeszcze o Federated Learning of Cohorts to jest to algorytm, kt\u00f3ry po stronie klienta analizuje histori\u0119 przegl\u0105dania i przypisuje u\u017cytkownika do odpowiedniej kohorty. W wst\u0119pnym rozwi\u0105zaniu przygotowanym przez Google kohort by\u0142o 256, ale rozwa\u017cane by\u0142o r\u00f3wnie\u017c zwi\u0119kszenie tej liczby do zawrotnych 65 536. Dzi\u0119ki zastosowaniu FLoC dane o aktywno\u015bci u\u017cytkownika nigdy nie opuszcza\u0142y by jego przegl\u0105darki, a r\u00f3wnocze\u015bnie reklamodawcy nie traciliby mo\u017cliwo\u015bci precyzyjnego targetowania swoich reklam.<\/p>\n","innerContent":["\n<p>FLoC by\u0142 tematem, kt\u00f3ry na przestrzeni zesz\u0142ego roku przewija\u0142 si\u0119 w nag\u0142\u00f3wkach bardzo regularnie. Je\u015bli nie s\u0142yszeli\u015bcie jeszcze o Federated Learning of Cohorts to jest to algorytm, kt\u00f3ry po stronie klienta analizuje histori\u0119 przegl\u0105dania i przypisuje u\u017cytkownika do odpowiedniej kohorty. W wst\u0119pnym rozwi\u0105zaniu przygotowanym przez Google kohort by\u0142o 256, ale rozwa\u017cane by\u0142o r\u00f3wnie\u017c zwi\u0119kszenie tej liczby do zawrotnych 65 536. Dzi\u0119ki zastosowaniu FLoC dane o aktywno\u015bci u\u017cytkownika nigdy nie opuszcza\u0142y by jego przegl\u0105darki, a r\u00f3wnocze\u015bnie reklamodawcy nie traciliby mo\u017cliwo\u015bci precyzyjnego targetowania swoich reklam.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ju\u017c przy pierwszych beta testach firmy stawiaj\u0105ce na prywatno\u015b\u0107 swoich u\u017cytkownik\u00f3w, takie jak Apple, Mozilla czy Brave zwr\u00f3ci\u0142y uwag\u0119, \u017ce w tej beczce miodu jest te\u017c \u0142y\u017cka dziegciu. I to ca\u0142kiem spora \u0142y\u017cka. Do tej pory, je\u015bli portal chcia\u0142 jednoznacznie zidentyfikowa\u0107 u\u017cytkownika, to musia\u0142 przeanalizowa\u0107 kilka milion\u00f3w rekord\u00f3w. Po wdro\u017ceniu nowego rozwi\u0105zania liczba ta zmniejszy\u0142a by si\u0119 nawet do zaledwie kilku tysi\u0119cy, bo strony b\u0119d\u0105 mog\u0142y odczyta\u0107 id kohorty i w ten spos\u00f3b mocno zaw\u0119zi\u0107 obszar poszukiwa\u0144. Ponadto, je\u015bli na stronie logujemy si\u0119 za pomoc\u0105 maila, to natychmiast mo\u017cna by powi\u0105za\u0107 nas z naszymi zainteresowaniami, a nawet zapisa\u0107 je u siebie na serwerze. Wbijaj\u0105c ostatni gw\u00f3\u017ad\u017a do trumny, generowanie kohort odbywa\u0142oby si\u0119 na podstawie ca\u0142ej historii przegl\u0105danych stron, nie tylko takich, kt\u00f3re u\u017cywaj\u0105 odpowiednich narz\u0119dzi do \u015bledzenia u\u017cytkownika.<\/p>\n","innerContent":["\n<p>Ju\u017c przy pierwszych beta testach firmy stawiaj\u0105ce na prywatno\u015b\u0107 swoich u\u017cytkownik\u00f3w, takie jak Apple, Mozilla czy Brave zwr\u00f3ci\u0142y uwag\u0119, \u017ce w tej beczce miodu jest te\u017c \u0142y\u017cka dziegciu. I to ca\u0142kiem spora \u0142y\u017cka. Do tej pory, je\u015bli portal chcia\u0142 jednoznacznie zidentyfikowa\u0107 u\u017cytkownika, to musia\u0142 przeanalizowa\u0107 kilka milion\u00f3w rekord\u00f3w. Po wdro\u017ceniu nowego rozwi\u0105zania liczba ta zmniejszy\u0142a by si\u0119 nawet do zaledwie kilku tysi\u0119cy, bo strony b\u0119d\u0105 mog\u0142y odczyta\u0107 id kohorty i w ten spos\u00f3b mocno zaw\u0119zi\u0107 obszar poszukiwa\u0144. Ponadto, je\u015bli na stronie logujemy si\u0119 za pomoc\u0105 maila, to natychmiast mo\u017cna by powi\u0105za\u0107 nas z naszymi zainteresowaniami, a nawet zapisa\u0107 je u siebie na serwerze. Wbijaj\u0105c ostatni gw\u00f3\u017ad\u017a do trumny, generowanie kohort odbywa\u0142oby si\u0119 na podstawie ca\u0142ej historii przegl\u0105danych stron, nie tylko takich, kt\u00f3re u\u017cywaj\u0105 odpowiednich narz\u0119dzi do \u015bledzenia u\u017cytkownika.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3723,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w20t.jpeg\" alt=\"\" class=\"wp-image-3723\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w20t.jpeg\" alt=\"\" class=\"wp-image-3723\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pod koniec zesz\u0142ego roku Google og\u0142osi\u0142, \u017ce wycofuje si\u0119 z plan\u00f3w wdro\u017cenie FLoC na szerok\u0105 skal\u0119 i nied\u0142ugo zaproponuje lepsze rozwi\u0105zanie. W minionym tygodniu do sieci trafi\u0142y pierwsze techniczne dokumenty opisuj\u0105ce alternatyw\u0119, jak\u0105 planuj\u0105 zaimplementowa\u0107 programi\u015bci z Google. Zamiast przypisywa\u0107 u\u017cytkownika do jednej kohorty, b\u0119dzie on przypisywany do listy temat\u00f3w, kt\u00f3rymi si\u0119 interesuje. Te za\u015b nie b\u0119d\u0105 dla stron publicznie dost\u0119pne. Kiedy strona poprosi o tematy przypisane do u\u017cytkownika, przegl\u0105darka zwr\u00f3ci nie wszystkie, a ich losowo wybrany podzbi\u00f3r. W ten spos\u00f3b portale zyska\u0107 maj\u0105 cenne informacje umo\u017cliwiaj\u0105ce profilowanie reklam, ale r\u00f3wnocze\u015bnie informacji tych ma by\u0107 na tyle ma\u0142o, \u017ce nie mo\u017cliwe b\u0119dzie pe\u0142ne sprofilowanie u\u017cytkownika. Na ten moment nie wiadomo jeszcze, jak du\u017ca b\u0119dzie lista temat\u00f3w do kt\u00f3rych przypisany b\u0119dzie m\u00f3g\u0142 zosta\u0107 u\u017cytkownik, ale Google zapowiada, \u017ce b\u0119d\u0105 one mocno og\u00f3lne. Dla przyk\u0142adu, w\u015br\u00f3d temat\u00f3w znajdziemy zapewne taki dotycz\u0105cy ps\u00f3w, ale nie znajdziemy ju\u017c \u017cadnego dotycz\u0105cego ich konkretnej rasy.<\/p>\n","innerContent":["\n<p>Pod koniec zesz\u0142ego roku Google og\u0142osi\u0142, \u017ce wycofuje si\u0119 z plan\u00f3w wdro\u017cenie FLoC na szerok\u0105 skal\u0119 i nied\u0142ugo zaproponuje lepsze rozwi\u0105zanie. W minionym tygodniu do sieci trafi\u0142y pierwsze techniczne dokumenty opisuj\u0105ce alternatyw\u0119, jak\u0105 planuj\u0105 zaimplementowa\u0107 programi\u015bci z Google. Zamiast przypisywa\u0107 u\u017cytkownika do jednej kohorty, b\u0119dzie on przypisywany do listy temat\u00f3w, kt\u00f3rymi si\u0119 interesuje. Te za\u015b nie b\u0119d\u0105 dla stron publicznie dost\u0119pne. Kiedy strona poprosi o tematy przypisane do u\u017cytkownika, przegl\u0105darka zwr\u00f3ci nie wszystkie, a ich losowo wybrany podzbi\u00f3r. W ten spos\u00f3b portale zyska\u0107 maj\u0105 cenne informacje umo\u017cliwiaj\u0105ce profilowanie reklam, ale r\u00f3wnocze\u015bnie informacji tych ma by\u0107 na tyle ma\u0142o, \u017ce nie mo\u017cliwe b\u0119dzie pe\u0142ne sprofilowanie u\u017cytkownika. Na ten moment nie wiadomo jeszcze, jak du\u017ca b\u0119dzie lista temat\u00f3w do kt\u00f3rych przypisany b\u0119dzie m\u00f3g\u0142 zosta\u0107 u\u017cytkownik, ale Google zapowiada, \u017ce b\u0119d\u0105 one mocno og\u00f3lne. Dla przyk\u0142adu, w\u015br\u00f3d temat\u00f3w znajdziemy zapewne taki dotycz\u0105cy ps\u00f3w, ale nie znajdziemy ju\u017c \u017cadnego dotycz\u0105cego ich konkretnej rasy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Wygl\u0105da na to, \u017ce tematy rzeczywi\u015bcie adresuj\u0105 wiele z problem\u00f3w, z kt\u00f3rymi boryka\u0142 si\u0119 FLoC. Wci\u0105\u017c nierozwi\u0105zane pozostaje kontrowersje zwi\u0105zne ze \u015bledzeniem aktywno\u015bci u\u017cytkownika na wszystkich odwiedzanych przez niego stronach. Do tego dochodzi jeszcze problem z mo\u017cliwo\u015bci\u0105 manipulowania przez przegl\u0105darki losowo\u015bci\u0105 dostarczanych portalom temat\u00f3w, tak aby zaszkodzi\u0107 konkurencji. No c\u00f3\u017c - ja z niecierpliwo\u015bci\u0105 czekam na odpowied\u017a ze strony takich firm jak Brave czy Mozilla.<\/p>\n","innerContent":["\n<p>Wygl\u0105da na to, \u017ce tematy rzeczywi\u015bcie adresuj\u0105 wiele z problem\u00f3w, z kt\u00f3rymi boryka\u0142 si\u0119 FLoC. Wci\u0105\u017c nierozwi\u0105zane pozostaje kontrowersje zwi\u0105zne ze \u015bledzeniem aktywno\u015bci u\u017cytkownika na wszystkich odwiedzanych przez niego stronach. Do tego dochodzi jeszcze problem z mo\u017cliwo\u015bci\u0105 manipulowania przez przegl\u0105darki losowo\u015bci\u0105 dostarczanych portalom temat\u00f3w, tak aby zaszkodzi\u0107 konkurencji. No c\u00f3\u017c - ja z niecierpliwo\u015bci\u0105 czekam na odpowied\u017a ze strony takich firm jak Brave czy Mozilla.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3724,"sizeSlug":"large","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/img_6128bb16dece3-976x1024.png\" alt=\"\" class=\"wp-image-3724\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/img_6128bb16dece3-976x1024.png\" alt=\"\" class=\"wp-image-3724\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 id=\"zrodla-1\">\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3 id=\"zrodla-1\">\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/www.tomsguide.com\/news\/google-kills-floc-debuts-topics\">https:\/\/www.tomsguide.com\/news\/google-kills-floc-debuts-topics<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/www.tomsguide.com\/news\/google-kills-floc-debuts-topics\">https:\/\/www.tomsguide.com\/news\/google-kills-floc-debuts-topics<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2 id=\"3-deno-w-2022-pora-przygotowac-sie-na-deno-2\">3. Deno w 2022 - pora przygotowa\u0107 si\u0119 na Deno 2!<\/h2>\n","innerContent":["\n<h2 id=\"3-deno-w-2022-pora-przygotowac-sie-na-deno-2\">3. Deno w 2022 - pora przygotowa\u0107 si\u0119 na Deno 2!<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>2021 by\u0142 dla Deno bardzo dobrym rokiem. Od stycznia do grudnia opublikowanych zosta\u0142o a\u017c 10 wersji tego \u015brodowiska uruchomieniowego. W\u015br\u00f3d nowych funkcjonalno\u015bci znalaz\u0142y si\u0119 takie usprawnienia jak mo\u017cliwo\u015b\u0107 uruchamiania kodu napisanego w Rust, nowy modu\u0142 http czy tryb kompatybilno\u015bci z modu\u0142ami pisanymi dla Node.js. Deno trafi\u0142 r\u00f3wnie\u017c do tabeli wsparcia w dokumentacji MDN, co wielu uznaje za oficjalne przyj\u0119cie do pierwszej ligi.<\/p>\n","innerContent":["\n<p>2021 by\u0142 dla Deno bardzo dobrym rokiem. Od stycznia do grudnia opublikowanych zosta\u0142o a\u017c 10 wersji tego \u015brodowiska uruchomieniowego. W\u015br\u00f3d nowych funkcjonalno\u015bci znalaz\u0142y si\u0119 takie usprawnienia jak mo\u017cliwo\u015b\u0107 uruchamiania kodu napisanego w Rust, nowy modu\u0142 http czy tryb kompatybilno\u015bci z modu\u0142ami pisanymi dla Node.js. Deno trafi\u0142 r\u00f3wnie\u017c do tabeli wsparcia w dokumentacji MDN, co wielu uznaje za oficjalne przyj\u0119cie do pierwszej ligi.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Poza prac\u0105 nad kolejnymi funkcjonalno\u015bciami zesp\u00f3\u0142 odpowiedzialny za Deno przekszta\u0142ci\u0142 si\u0119 w pe\u0142noprawn\u0105 firm\u0119 i zebra\u0142 dofinansowanie w wysoko\u015bci 4.9 miliona dolar\u00f3w. W minionym roku firma opublikowa\u0142a tak\u017ce sw\u00f3j pierwszy produkt - chmurowe \u015brodowisko uruchomieniowe dla Deno o nazwie Deno Deploy.<\/p>\n","innerContent":["\n<p>Poza prac\u0105 nad kolejnymi funkcjonalno\u015bciami zesp\u00f3\u0142 odpowiedzialny za Deno przekszta\u0142ci\u0142 si\u0119 w pe\u0142noprawn\u0105 firm\u0119 i zebra\u0142 dofinansowanie w wysoko\u015bci 4.9 miliona dolar\u00f3w. W minionym roku firma opublikowa\u0142a tak\u017ce sw\u00f3j pierwszy produkt - chmurowe \u015brodowisko uruchomieniowe dla Deno o nazwie Deno Deploy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3725,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w2zb.jpeg\" alt=\"\" class=\"wp-image-3725\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/01\/62w2zb.jpeg\" alt=\"\" class=\"wp-image-3725\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>To co jest zdecydowanie ciekawsze od przesz\u0142o\u015bci Deno to jego przysz\u0142o\u015b\u0107. W 2022 zesp\u00f3\u0142 rozwijaj\u0105cy to \u015brodowisko uruchomieniowe planuje rozpocz\u0105\u0107 prac\u0119 nad Deno 2.0. Premiera zaplanowana jest jeszcze w pierwszej po\u0142owie tego roku. Wydanie to skupia\u0107 si\u0119 b\u0119dzie na lepszym wsparciu dla \u015brodowiska npm, poprawieniu Developer Experience i ma otworzy\u0107 drog\u0119 dla alternatywnych sposob\u00f3w zarz\u0105dzania paczkami. Trzeba przyzna\u0107, \u017ce jest na co czeka\u0107!<\/p>\n","innerContent":["\n<p>To co jest zdecydowanie ciekawsze od przesz\u0142o\u015bci Deno to jego przysz\u0142o\u015b\u0107. W 2022 zesp\u00f3\u0142 rozwijaj\u0105cy to \u015brodowisko uruchomieniowe planuje rozpocz\u0105\u0107 prac\u0119 nad Deno 2.0. Premiera zaplanowana jest jeszcze w pierwszej po\u0142owie tego roku. Wydanie to skupia\u0107 si\u0119 b\u0119dzie na lepszym wsparciu dla \u015brodowiska npm, poprawieniu Developer Experience i ma otworzy\u0107 drog\u0119 dla alternatywnych sposob\u00f3w zarz\u0105dzania paczkami. Trzeba przyzna\u0107, \u017ce jest na co czeka\u0107!<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3 id=\"zrodla-2\">\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3 id=\"zrodla-2\">\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/deno.com\/blog\/deno-in-2021\">https:\/\/deno.com\/blog\/deno-in-2021<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/deno.com\/blog\/deno-in-2021\">https:\/\/deno.com\/blog\/deno-in-2021<\/a><\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10014"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10014\/revisions"}],"predecessor-version":[{"id":10604,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10014\/revisions\/10604"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/7909"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}