﻿
{"id":7386,"date":"2018-03-30T18:33:26","date_gmt":"2018-03-30T18:33:26","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=7386"},"modified":"2018-03-30T18:34:13","modified_gmt":"2018-03-30T18:34:13","slug":"typescripte-genel-bakis","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/typescripte-genel-bakis\/","title":{"rendered":"TypeScript&#8217;e Genel Bak\u0131\u015f"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>TypeScript; nesneye dayal\u0131 bir \u015fekilde kod yaz\u0131p JavaScript \u00e7\u0131kt\u0131s\u0131 \u00fcretmek i\u00e7in Microsoft taraf\u0131ndan tasarlan\u0131p piyasaya s\u00fcr\u00fclm\u00fc\u015f olan a\u00e7\u0131k kaynak kodlu bir frameworkt\u00fcr. Yani farkl\u0131 bir kod yaz\u0131p bu yazd\u0131\u011f\u0131m\u0131z\u0131 JavaScript&#8217;e \u00e7eviren bir dildir diyebiliriz.<\/p>\n<p>Asl\u0131nda TypeScript; yap\u0131s\u0131 ve var olu\u015fu sebebiyle programc\u0131lar\u0131n okunakl\u0131, hat\u0131rlanabilir, kolay anla\u015f\u0131labilir ve \u015f\u00f6yle uzaktan bak\u0131ld\u0131\u011f\u0131nda d\u00fczg\u00fcn g\u00f6r\u00fcn\u00fcml\u00fc bir kod \u00fcretmek i\u00e7in ilgili dilin gramersel(syntax) kurallar\u0131 d\u0131\u015f\u0131nda \u00f6zel kod bi\u00e7imleri olu\u015fturmas\u0131 ve kullanmas\u0131 durumuna kar\u015f\u0131l\u0131k gelen &#8220;syntactic sugar&#8221; terimine birebir uymaktad\u0131r.<\/p>\n<p>En nihayetinde belirli bir \u00f6l\u00e7\u00fcden sonra okunabilirlik, anla\u015fabilirlik ve d\u00fczg\u00fcn g\u00f6r\u00fcn\u00fcml\u00fcl\u00fck \u00f6zellikleri d\u00fc\u015fen JavaScript diline TypeScript ile &#8220;syntactic sugar&#8221; uygulam\u0131\u015f oluyoruz ve biz TypeScript ile anla\u015f\u0131l\u0131r kod yazd\u0131k\u00e7a, s\u00fcre\u00e7 bize JavaScript veriyor \ud83d\ude42<\/p>\n<p>\u015eimdi gelin hep beraber TypeScript ile genel manada nas\u0131l \u00e7al\u0131\u015faca\u011f\u0131z inceleyelim.<\/p>\n<h3>De\u011fi\u015fken Tan\u0131mlama<\/h3>\n<p>TypeScript ile de\u011fi\u015fken tan\u0131mlamay\u0131 a\u015fa\u011f\u0131daki prototipte ger\u00e7ekle\u015ftirmekteyiz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n&#x5B;De\u011fi\u015fken Ad\u0131]: &#x5B;De\u011fi\u015fken Tipi];\r\n<\/pre>\n<p>A\u015fa\u011f\u0131daki \u00f6rnekleri inceleyiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nclass MyClass {\r\n  Degisken1: number;\r\n  Degisken2: string;\r\n  Degisken3: Date;\r\n  Degisken4: boolean;\r\n}\r\n<\/pre>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere de\u011fi\u015fkenler C# ya da Java&#8217;da al\u0131\u015f\u0131lagelmi\u015f bir \u015fekilde tan\u0131mlanmamaktad\u0131rlar. \u00d6nce referans noktas\u0131 olu\u015fturulup ard\u0131ndan tip belirtilmektedir.<\/p>\n<h3>S\u0131n\u0131f Tan\u0131mlama<\/h3>\n<p>C# ya da Java&#8217;da ki gibi class keyword\u00fcyle s\u0131n\u0131f tan\u0131mlanmaktad\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nclass MyClass {\r\n\r\n}\r\n<\/pre>\n<h3>Metot Tan\u0131mlama<\/h3>\n<p>Metot tan\u0131mlaman\u0131n prototipi a\u015fa\u011f\u0131daki gibidir.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n    &#x5B;Metot Ad\u0131]() {\r\n     &#x5B;\u0130\u015flemler]\r\n    }\r\n<\/pre>\n<p>\u015eimdi a\u015fa\u011f\u0131daki kod blo\u011funu inceleyiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    Metod() {\r\n        return &quot;Merhaba d\u00fcnya&quot;;\r\n    }\r\n    Metod2(x: string, y: boolean) {\r\n\r\n    }\r\n<\/pre>\n<h3>S\u0131n\u0131f Import Etme<\/h3>\n<p>Bir s\u0131n\u0131fa eri\u015fmek istiyorsan\u0131z a\u015fa\u011f\u0131daki prototipte oldu\u011fu gibi ilgili s\u0131n\u0131f\u0131 o anki sayfaya import edebilirsiniz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nimport { &#x5B;S\u0131n\u0131f Ad\u0131] } from &#x5B;Dizin];\r\n<\/pre>\n<p>Bir s\u0131n\u0131f\u0131 farkl\u0131 bir s\u0131n\u0131f dosyas\u0131na import edebilmemiz i\u00e7in ithal edilecek s\u0131n\u0131f <em><strong>export<\/strong><\/em> keyword\u00fcyle i\u015faretlenmi\u015f olmas\u0131 gerekmektedir.<br \/>\n\u015eimdi gelin bunu a\u015fa\u011f\u0131daki gibi bir \u00f6rnekle icra edelim.<br \/>\n\u00d6ncelikle &#8220;a.ts&#8221; dosyas\u0131ndaki &#8220;AClass&#8221; s\u0131n\u0131f\u0131m\u0131z\u0131 tan\u0131mlayal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nexport class AClass {\r\n    aDegisken: string;\r\n    constructor() {\r\n        this.aDegisken = &quot;aDe\u011fi\u015fken de\u011fer.&quot;;\r\n    }\r\n}\r\n<\/pre>\n<p>Ard\u0131ndan &#8220;b.ts&#8221; dosyas\u0131ndaki &#8220;BClass&#8221; s\u0131n\u0131f\u0131m\u0131zda &#8220;a.ts&#8221; dosyas\u0131ndaki &#8220;AClass&#8221; s\u0131n\u0131f\u0131n\u0131 kullanabilmek i\u00e7in import edelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { AClass } from &quot;.\/a&quot;;\r\nclass BClass {\r\n    constructor() {\r\n        let _aclass: AClass = new AClass();    \r\n    }\r\n}\r\n<\/pre>\n<p>Burada &#8220;AClass&#8221; s\u0131n\u0131f\u0131m\u0131z\u0131 a\u015fa\u011f\u0131daki gibi farkl\u0131 bir export varyasyonuyla d\u0131\u015fa kar\u015f\u0131 ula\u015f\u0131labilir yapabiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nclass AClass {\r\n    aDegisken: string;\r\n    constructor() {\r\n        this.aDegisken = &quot;aDe\u011fi\u015fken de\u011fer.&quot;;\r\n    }\r\n}\r\nexport { AClass }\r\n<\/pre>\n<h3>let Keyword\u00fc<\/h3>\n<p>Bir de\u011fi\u015fkenin kapsam\u0131n\u0131 belirten komuttur. A\u015fa\u011f\u0131daki kod blo\u011funu ele al\u0131rsak e\u011fer ;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nfor (let i = 0; i &lt; 10; i++) {\r\n    \/\/...\r\n}\r\n<\/pre>\n<p>&#8220;let&#8221; komutuyla olu\u015fturulan i de\u011fi\u015fkeninin kapsam\u0131n\u0131 for d\u00f6ng\u00fcs\u00fcnden ibaret olacak \u015fekilde ayarlam\u0131\u015f oluyoruz.<\/p>\n<p>TypeScript hakk\u0131nda genel a\u00e7\u0131dan ele ald\u0131\u011f\u0131m\u0131z konulardaki bilgiler bizlere Angular 4 makalelerinde teknik d\u00fczey olarak yeterlilik sa\u011flayacakt\u0131r.<\/p>\n<p>O halde Angular 4 makalelerinde g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, TypeScript; nesneye dayal\u0131 bir \u015fekilde kod yaz\u0131p JavaScript \u00e7\u0131kt\u0131s\u0131 \u00fcretmek i\u00e7in Microsoft taraf\u0131ndan tasarlan\u0131p piyasaya s\u00fcr\u00fclm\u00fc\u015f olan a\u00e7\u0131k kaynak kodlu bir frameworkt\u00fcr. Yani farkl\u0131 bir kod yaz\u0131p bu yazd\u0131\u011f\u0131m\u0131z\u0131 JavaScript&#8217;e \u00e7eviren bir dildir&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":7400,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2144,2192],"tags":[2201,2197,2193,2196,2199,2200,2202,2203,2195,2198,2194],"class_list":["post-7386","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular-4","category-typescript","tag-let-keywordu","tag-syntactic-sugar","tag-typescript","tag-typescript-class","tag-typescript-degisken-tanimlama","tag-typescript-export","tag-typescript-let","tag-typescript-let-keyword","tag-typescriptte-class-olusturma","tag-typescriptte-genel-bakis","tag-typescriptte-temel-yapilar"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/7386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=7386"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/7386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/7400"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=7386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=7386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=7386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}