{"id":231670,"date":"2023-01-12T17:28:00","date_gmt":"2023-01-12T14:28:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231670"},"modified":"2022-12-25T18:49:30","modified_gmt":"2022-12-25T15:49:30","slug":"5-powodow-dla-ktorych-deno-przestanie-uzywac-typescript","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/5-powodow-dla-ktorych-deno-przestanie-uzywac-typescript\/","title":{"rendered":"5 powod\u00f3w, dla kt\u00f3rych Deno przestanie u\u017cywa\u0107 TypeScript"},"content":{"rendered":"<p>W dniu dzisiejszym pojawi\u0142 si\u0119 dokument wskazuj\u0105cy, \u017ce Deno przestanie u\u017cywa\u0107 TypeScript w swoim wewn\u0119trznym kodzie, powo\u0142uj\u0105c si\u0119 na kilka problem\u00f3w z obecnym \u015brodowiskiem. Wspomniane problemy dotycz\u0105 mi\u0119dzy innymi czasu kompilacji TypeScript, struktury i organizacji kodu. Id\u0105c dalej, Deno b\u0119dzie u\u017cywa\u0107 czystego JavaScript do swojego wewn\u0119trznego kodu.<\/p>\n<h2>Deno problemy z TypeScript<\/h2>\n<p>Niekorzystne sytuacje, kt\u00f3re zesp\u00f3\u0142 Deno do\u015bwiadcza obecnie podczas korzystania z <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript<\/a> w swoim kodzie wewn\u0119trznym, to:<\/p>\n<ul>\n<li>\n<p>Czas kompilacji TypeScript, gdy zmiana plik\u00f3w zajmuje kilka minut, sprawia, \u017ce \u200b\u200bci\u0105g\u0142e kompilowanie jest niezwykle powolnym procesem<\/p>\n<\/li>\n<li>\n<p>Struktura Typescript, kt\u00f3rej u\u017cywaj\u0105 w plikach \u017ar\u00f3d\u0142owych, kt\u00f3re tworz\u0105 rzeczywisty plik wykonywalny Deno i interfejsy API skierowane do u\u017cytkownik\u00f3w, powoduj\u0105 problemy z wydajno\u015bci\u0105 \u015brodowiska wykonawczego<\/p>\n<\/li>\n<li>\n<p>TypeScript nie jest pomocny w porz\u0105dkowaniu kodu Deno. Wr\u0119cz przeciwnie, zesp\u00f3\u0142 Deno do\u015bwiadcza odwrotnego efektu. Jednym z wymienionych problem\u00f3w jest to, \u017ce sko\u0144czy\u0142y si\u0119 zduplikowanymi niezale\u017cnymi klasami cia\u0142a w dw\u00f3ch lokalizacjach <a href=\"https:\/\/github.com\/denoland\/deno\/issues\/4748\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/github.com\/denoland\/deno\/issues\/4748<\/a><\/p>\n<\/li>\n<li>\n<p>Deklaracje TypeScript kodu wewn\u0119trznego i \u015brodowiska wykonawczego musz\u0105 by\u0107 r\u0119cznie synchronizowane, poniewa\u017c kompilator TypeScript nie jest pomocny w generowaniu plik\u00f3w d.ts<\/p>\n<\/li>\n<li>\n<p>Utrzymuj\u0105 dwa hosty kompilatora TS: jeden dla wewn\u0119trznego kodu Deno, a drugi dla zewn\u0119trznego kodu u\u017cytkownika, mimo \u017ce oba maj\u0105 podobny cel<\/p>\n<\/li>\n<\/ul>\n<h2>Usuwanie TypeScriptu z wewn\u0119trznego kodu Deno<\/h2>\n<p>Zesp\u00f3\u0142 <a href=\"https:\/\/startfunction.com\/tag\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Deno<\/a> ma na celu usuni\u0119cie ca\u0142ego sprawdzania i \u0142\u0105czenia typ\u00f3w TS w czasie budowania dla wewn\u0119trznego kodu Deno. Nie mog\u0105 si\u0119 doczeka\u0107 przeniesienia ca\u0142ego kodu \u015brodowiska wykonawczego do jednego pliku <a href=\"https:\/\/startfunction.com\/category\/javascript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JavaScript .<\/a> Jednak nadal b\u0119d\u0105 u\u017cywa\u0107 towarzysz\u0105cego pliku d.ts, aby zachowa\u0107 definicje typ\u00f3w i dokumentacj\u0119.<\/p>\n<p>Warto wspomnie\u0107, \u017ce Deno przestanie u\u017cywa\u0107 TypeScript tylko dla wewn\u0119trznego kodu Deno: kod u\u017cytkownika Deno nadal b\u0119dzie w TypeScript, a zatem b\u0119dzie sprawdzany.<\/p>\n<p>Chocia\u017c TypeScript jest czasami postrzegany jako ulepszona wersja JavaScript, ten przypadek pokazuje, \u017ce w rzeczywisto\u015bci tak nie jest. Ma wady jak ka\u017cdy inny j\u0119zyk. Jednym z najwa\u017cniejszych jest powolny czas kompilacji. Podczas gdy ma\u0142e projekty mog\u0105 nie zauwa\u017cy\u0107 ogromnego skoku czasu kompilacji po przej\u015bciu z czystego JavaScript na TypeScript, b\u0119dzie to zauwa\u017calne w du\u017cych projektach, takich jak z\u0142o\u017cona aplikacja <a href=\"https:\/\/startfunction.com\/tag\/react\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">React .<\/a> Bior\u0105c pod uwag\u0119 du\u017cy rozmiar \u015brodowiska uruchomieniowego, nie jest zaskakuj\u0105ce, \u017ce Deno przestanie u\u017cywa\u0107 TypeScript.<\/p>\n<p>Bezpiecze\u0144stwo sprawdzania typu podczas opracowywania ma sw\u00f3j koszt w czasie kompilacji. Nie bez powodu projekt TypeScript ma obszerny dokument na temat tego, jak adresowa\u0107 i <a href=\"https:\/\/github.com\/microsoft\/TypeScript\/wiki\/Performance\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">poprawia\u0107 czas kompilacji<\/a>. Jednym z najciekawszych podej\u015b\u0107 jest u\u017cycie <a href=\"https:\/\/www.typescriptlang.org\/docs\/handbook\/project-references.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Project References<\/a>, kt\u00f3ry pozwala programistom na rozbicie du\u017cego fragmentu kodu TypeScript na mniejsze cz\u0119\u015bci.<\/p>\n<h2>Przeczytaj wi\u0119cej o tym, dlaczego Deno przestanie u\u017cywa\u0107 TypeScript<\/h2>\n<p>Pe\u0142ne om\u00f3wienie decyzji o usuni\u0119ciu TypeScript z wewn\u0119trznego kodu Deno i u\u017cyciu JavaScriptu mo\u017cna znale\u017a\u0107 w <a href=\"https:\/\/docs.google.com\/document\/d\/1_WvwHl7BXUPmoiSeD8G83JmS8ypsTPqed4Btkqkn_-4\/preview?pru=AAABcrrKL5k*nQ4LS569NsRRAce2BVanXw#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tym dokumencie<\/a>, w kt\u00f3rym Ryan Dahl i wsp\u00f3\u0142pracownicy omawiaj\u0105 problem, jego rozwi\u0105zanie i spos\u00f3b jego implementacji.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/startfunction.com\" class=\"external external_icon\">startfunction.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deno przestanie u\u017cywa\u0107 TypeScript po kilku problemach, takich jak powolny czas kompilacji.<\/p>\n","protected":false},"author":1,"featured_media":157627,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,732,897,752,836,845],"tags":[1169],"class_list":["post-231670","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-javascript-7","category-kod","category-otwarte-zrodlo","category-przewodnik-dla-poczatkujacych","category-samouczki","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=231670"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/231670\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/157627"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=231670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=231670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=231670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}