<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2825979746745507137</id><updated>2024-11-05T19:09:24.933-08:00</updated><category term="Technology"/><category term="JavaScript"/><category term="Programming"/><category term="dynamic language"/><title type='text'>Seshu&#39;s Views</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://seshukv.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2825979746745507137/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://seshukv.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02057703948262451420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2825979746745507137.post-361218718020598025</id><published>2013-01-20T00:53:00.001-08:00</published><updated>2013-01-20T01:01:05.810-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dynamic language"/><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Technology"/><title type='text'>TypeScript: An Introduction</title><content type='html'>&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;With HTML5 becoming more and more popular the need to learn JavaScript is ever increasing and making it the most used language for the web. Its used in one form or the other (jQuery etc.).&amp;nbsp; That’s because even thought HTML5 has lots of features, they are still just tags and you need JavaScript to make something useful for most of the time, if not always. As the popularity is increased if the structure of the JavaScript code is not taken care properly, soon you will end up with spaghetti code and one can easily end up with functions and code mess. This is especially true for large scale applications.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA4zZKRi6onFORq4VF8rZpaPHyRBZHtMvSDZwHtlQFzR12_vCujMVyrCxcEoCBs0lyzKOsj-wAvbXDCLGEBKKyAxBjrgTDm6CGLYfLIjJc3Y9WY623IaVs_07pjLF2OOwKW08G6EYi0J8/s1600-h/image23.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 50px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0O5k5L6Xc8Dzvoa44tq3PsXaQvHfDecwqbxPcqArSHXKRW-IsmEUHhPvZ5PLDrGHdC2FaGJbomNh2gpVKjpSKYmWST9NGeyrZDrXcyexQLpSuwBiPEPDKcncWBHJBIiUTP_98J2MHfuQ/?imgmax=800&quot; width=&quot;240&quot; height=&quot;98&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align=&quot;left&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;There have been few patterns used by folks in the industry to solve this issue some what, but they aren’t straight forward, giving raise to alternatives like CoffeScript, ScriptSharp, Dart (by Google) and TypeScript (Microsoft). Although each of them have their own advantages the major advantage that TypeScript is its similarity with JavaScript (we can use JavaScript as is) and tooling that are beneficial for large scale applications. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Segoe UI&quot;&gt;So what is TypeScript? Just another language from Microsoft? well, here is &lt;/font&gt;&lt;a href=&quot;http://www.typescriptlang.org/&quot; target=&quot;_blank&quot;&gt;&lt;font face=&quot;Segoe UI&quot;&gt;official definition&lt;/font&gt;&lt;/a&gt;&lt;font face=&quot;Segoe UI&quot;&gt;:&lt;/font&gt; &lt;/p&gt; &lt;blockquote&gt; &lt;h3&gt;&lt;font color=&quot;#4a9dc6&quot; face=&quot;Segoe UI Light&quot;&gt;TypeScript is a language for application-scale JavaScript development.&lt;br&gt;TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.&lt;br&gt;Any browser. Any host. Any OS. Open Source.&lt;/font&gt;&lt;/h3&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;For all those C++, C# or Java programmers who had difficulty dealing with dynamic typed languages such as JavaScript, Microsoft came up with an Open Source language implementation that is very much similar to the typed languages that can be compiled down to plain JavaScript. This can be learnt in the browser itself using &lt;/font&gt;&lt;a href=&quot;http://www.typescriptlang.org/Playground/&quot; target=&quot;_blank&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;TypeScript Playground&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt; , that gives instant intellisense and error display. It instantly compiles to JavaScript and same is displayed side by side.&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsU_z4Np6H740pwzHarBpzBaY13Gvk0rFxfi1jGzVvBRLv4cKD8sc3KFquuIkJ6iNxlH_FyWvguq2uwJS3Rykyn0vdtMjyWyhUccMmro75D77a16q-YqP3_D9rCU5dEj2aAq9HW3Sgu_s/s1600-h/image9.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk06f-VnSzEnxmrrCPHz-SKuQX4tfqdLMd9qz-NMWOXNVgHHby3iqFUmyt2ex6jIzUsjkSZSmuXDRrrJSv7r4tRR_Nhc3uAsgfKEuCepskHxHPlx1Aw0eM0suDltsHS1aKqZjXjWKfDbU/?imgmax=800&quot; width=&quot;875&quot; height=&quot;297&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;TypeScript code files can be saved with .ts extension and it can be compiled to JavaScript using TypeScript’s (tsc.exe) compilation tool or by using a variety of editors/tools. Since it allows to use JavaScript syntax existing JavaScript frameworks such as jQuery, Node.js can be used with enhanced code help and the compiler can catch type issues etc. For that special declaration files can be used with an extension .d.ts for example for jQuery we can use &lt;/font&gt;&lt;a href=&quot;http://typescript.codeplex.com/SourceControl/changeset/view/fe3bc0bfce1f#samples/jquery/jquery.d.ts&quot; target=&quot;_blank&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;jQuery.d.ts&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt; in tools such as Visual Studio 2012 and take advantage of error checking right away so that bugs can be caught in code editor.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;To use TypeScript in VS2012, download and install the &lt;/font&gt;&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=266563&quot; target=&quot;_blank&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;TypeScript plugin&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;. I also recommend using Web Essentials&amp;nbsp; 2012 since it provides optional side by side view of your TS code and JS code, which is helpful during learning phase. The TS plugin provides you with default project template (HTML Application with TypeScript) as well. Following is the default app.ts and generated app.js files side by side.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih3C7E5_CkfM3DDESLUghrPZNXG6jFLp3oYajfMNn7zpW8J3GRyW8uJ26FntUAiMk_hYVyEpsX2l7nI_QgUcy2vLcu2FZg-6fnqw9iaItSRbL12PPmdcSkJT0UuKdtwiXmFQVVpNYf8n8/s1600-h/image14.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI8R7N8wfuGgPrcAjIJ01HkmtaDaC_Qf3DrSbmLjMOX6BIcZk-0NuEIWbeXd9NcO7OggitjrotRr3bLG8tyluK8gVY4I7yfCwUMM7dVgAHvA7uIppbgKcMBfK42iTUgk7Mfdw_AqvArU8/?imgmax=800&quot; width=&quot;900&quot; height=&quot;378&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font face=&quot;Segoe UI&quot;&gt;Looking at the above examples few things that come to views attention are the new keywords or annotations in TypeScript. Below is brief summary of those:&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Type Annotations:&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;font face=&quot;Segoe UI&quot;&gt;This is an optional by useful feature that allows us to use types while declaring the variables. For example if we want to specify a variable that should only store integers it is not possible in JavaScript because of its dynamic type nature. If you use == operator and others it does automatic type conversion that could lead to undesired results. Even though === operator can be used to be type safe, the whole thing is difficult for debugging. If such cases arise we can use Type annotations that will make sure the operations are type safe.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;csharpcode&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; height: 139px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 69.44%; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color: #606060&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; variable; &lt;span style=&quot;color: #008000&quot;&gt;// any value. same as not having a static type  &lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color: #606060&quot;&gt;   2:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; num1: number; &lt;span style=&quot;color: #008000&quot;&gt;// number type annotation &lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color: #606060&quot;&gt;   3:&lt;/span&gt; num1 = 1; &lt;span style=&quot;color: #008000&quot;&gt;// set the value after declaration  &lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color: #606060&quot;&gt;   4:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; num2: number = 2; &lt;span style=&quot;color: #008000&quot;&gt;// initialized and typed  in single line&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum5&quot; style=&quot;color: #606060&quot;&gt;   5:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; num3 = 3; &lt;span style=&quot;color: #008000&quot;&gt;//treated as number via type inference  &lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum6&quot; style=&quot;color: #606060&quot;&gt;   6:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; str = num1 + &lt;span style=&quot;color: #006080&quot;&gt;&#39;plus string&#39;&lt;/span&gt;; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum7&quot; style=&quot;color: #606060&quot;&gt;   7:&lt;/span&gt; num3 = 3 + &lt;span style=&quot;color: #006080&quot;&gt;&#39;3&#39;&lt;/span&gt;; &lt;font color=&quot;#ff0000&quot;&gt;// TypeScript compiler will generate an error here.&lt;/font&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;background: #1e1e1e; color: #b4b4b4&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;Similarly parameters can be type annotated so that we are sure what we are passing around during compile time.&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; height: 132px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 69.41%; background-color: #f4f4f4&quot;&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color: #606060&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;function&lt;/span&gt; areaofRectangle(width: number, height: number) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color: #606060&quot;&gt;   2:&lt;/span&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; area = width * height;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color: #606060&quot;&gt;   3:&lt;/span&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #006080&quot;&gt;&quot;The Area of passed Rectangle is&quot;&lt;/span&gt; + area + &lt;span style=&quot;color: #006080&quot;&gt;&quot; cm squared.&quot;&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color: #606060&quot;&gt;   4:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum5&quot; style=&quot;color: #606060&quot;&gt;   5:&lt;/span&gt; document.body.innerHTML = areaofRectangle(30, 15);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum6&quot; style=&quot;color: #606060&quot;&gt;   6:&lt;/span&gt; document.body.innerHTML = areaofRectangle(5, &lt;span style=&quot;color: #0000ff&quot;&gt;false&lt;/span&gt;); &lt;font color=&quot;#ff0000&quot;&gt;//Supplied parameters &lt;span style=&quot;color: #0000ff&quot;&gt;do&lt;/span&gt; not match any signature of call target.&lt;/font&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;&lt;font face=&quot;Calibri&quot;&gt;Classes and Interfaces:&lt;/font&gt;&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;In static typed languages we often use classes and interfaces to organize the code into logical units, but there is no direct or easy way to do so in JavaScript making it hard to structure the code. This is where TypeScript comes in handy as it makes writing structured code easy some of it using classes and interfaces.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;We can create classes using the class keyword of TypeScript and we can even add fields, properties and functions. The syntax that closely follows the &lt;a href=&quot;http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes&quot; target=&quot;_blank&quot;&gt;ECMAScript6 proposal&lt;/a&gt;:&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type=&quot;text/css&quot;&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqXEUXQ0Mwf0EwxtblH4jB3zKFuEzz38Q2N-2WUmIpuHo8e1P-pemhLkPwiuIR4Dh95JDQDFCU3IUNNw3JVlJJfO1Xb_mNu79sgeIX62VUO_WBsJlkLU2BTRmfT-jt0R0pEFDzqyLi9mY/s1600-h/image11.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHjBPV5YiSdKp14ltx7b363-1IbVu0NR7zHFMP1KvSXmOckzPpI2o2h3jERP7KT86QboaHegQ5O6Nwjz0iY3K5x-FJuC2PPPjFlzuqn3q4MRoOkuCgLOmiCeg_h6E93q3O1tw1Z3a9jqU/?imgmax=800&quot; width=&quot;879&quot; height=&quot;176&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;On the right we can see the compiled JavaScript, pure JavaScript that is interpreted normally by browsers and other JavaScript engines.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNEEstBhJvpqf7a70X8Lg-xU37rDjOU1txUeCTwwMXf1cobPoOMOpoGcwJ4XrkvP9LUrjKrHKUKNByKtZjrONiwTveIJE38drVRARfYBmxLcb0NP8tjyE6CWU4i7W4xdJ-VCafmDG_Db0/s1600-h/image10%25255B1%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOCwQJX3O9rNovbXVUaGmb1XidJmoJxNt6EhD93gW5C2THXdUr_yTrhq2nvU3BriIqM2Fg5NG6I8zH4uFntSkda96mf7o7Ql0cgnfQWhd7c_jbxPl02k3dRreQ5Kf8cUIlbDWGBIgMyX0/?imgmax=800&quot; width=&quot;798&quot; height=&quot;176&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;Interfaces can be implemented as above, when there is a need to create complex types. This can be helpful when you have a complex type that you want to use in your application such as an object that contains other properties. Note that this till compile time only, still it does provide you with nice way to structure the code.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;With classes and interfaces comes inheritance but the keywords are NOT same for different types. You need to use ‘extends’ for class inheritance and implements for interface inheritance. &lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; height: 232px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 72.61%; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color: #606060&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; Vehicle{&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color: #606060&quot;&gt;   2:&lt;/span&gt;     engine: &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color: #606060&quot;&gt;   3:&lt;/span&gt;     constructor(engine: &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color: #606060&quot;&gt;   4:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.engine = engine;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum5&quot; style=&quot;color: #606060&quot;&gt;   5:&lt;/span&gt;     }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum6&quot; style=&quot;color: #606060&quot;&gt;   6:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum7&quot; style=&quot;color: #606060&quot;&gt;   7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum8&quot; style=&quot;color: #606060&quot;&gt;   8:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; Bus &lt;font color=&quot;#0000ff&quot;&gt;extends&lt;/font&gt; Vehicle{&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum9&quot; style=&quot;color: #606060&quot;&gt;   9:&lt;/span&gt;     bigTires: &lt;span style=&quot;color: #0000ff&quot;&gt;bool&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum10&quot; style=&quot;color: #606060&quot;&gt;  10:&lt;/span&gt;     constructor(engine: &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;, bigTires: &lt;span style=&quot;color: #0000ff&quot;&gt;bool&lt;/span&gt;) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum11&quot; style=&quot;color: #606060&quot;&gt;  11:&lt;/span&gt;         super(engine);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum12&quot; style=&quot;color: #606060&quot;&gt;  12:&lt;/span&gt;         &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.bigTires = bigTires;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum13&quot; style=&quot;color: #606060&quot;&gt;  13:&lt;/span&gt;     }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum14&quot; style=&quot;color: #606060&quot;&gt;  14:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;Arrow Functions&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;If you work lot with lambda expressions in C#, arrow functions in TypeScript are very much similar. Also if you had found the scope of &lt;font face=&quot;Consolas&quot;&gt;&lt;em&gt;this&lt;/em&gt;&lt;/font&gt; operator challenging, then TS makes it little easy while writing call back functions. You can define an arrow function by ignoring/omitting the function keyword with =&amp;gt; syntax.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; height: 126px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 72.94%; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color: #606060&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; multiply = &lt;span style=&quot;color: #0000ff&quot;&gt;function&lt;/span&gt; (h: number, w: number) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color: #606060&quot;&gt;   2:&lt;/span&gt;     &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; h * w;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color: #606060&quot;&gt;   3:&lt;/span&gt; };&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color: #606060&quot;&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white&quot;&gt;&lt;span id=&quot;lnum5&quot; style=&quot;color: #606060&quot;&gt;   5:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;var&lt;/span&gt; multiply2 = (h: number, w: number) =&amp;gt; h * w;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;As can be seen above TypeScript makes it easy to structure code and group them into logical units with all of its features and whether or not to use it would be situation dependent.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;Following are few resources for further reading:&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.typescriptlang.org/&quot;&gt;Official Website&lt;/a&gt; &lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.typescriptlang.org/Tutorial/&quot;&gt;Tutorials&lt;/a&gt; and &lt;a href=&quot;http://www.typescriptlang.org/Samples/&quot;&gt;samples&lt;/a&gt; &lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.typescriptlang.org/Playground/&quot;&gt;Live code editor with JavaScript output&lt;/a&gt; &lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://typescript.codeplex.com/&quot;&gt;Code Repository&lt;/a&gt; for &lt;a href=&quot;http://typescript.codeplex.com/discussions&quot;&gt;discussions&lt;/a&gt; and &lt;a href=&quot;http://typescript.codeplex.com/workitem/list/basic&quot;&gt;bug tracking&lt;/a&gt; &lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://www.hanselminutes.com/340/what-is-typescript-and-why-with-anders-hejlsberg&quot;&gt;What is TypeScript?&lt;/a&gt; by Anders Hejlsberg on Hanselminites. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;Segoe UI&quot;&gt;&lt;/font&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://seshukv.blogspot.com/feeds/361218718020598025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://seshukv.blogspot.com/2013/01/typescript-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2825979746745507137/posts/default/361218718020598025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2825979746745507137/posts/default/361218718020598025'/><link rel='alternate' type='text/html' href='http://seshukv.blogspot.com/2013/01/typescript-introduction.html' title='TypeScript: An Introduction'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02057703948262451420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0O5k5L6Xc8Dzvoa44tq3PsXaQvHfDecwqbxPcqArSHXKRW-IsmEUHhPvZ5PLDrGHdC2FaGJbomNh2gpVKjpSKYmWST9NGeyrZDrXcyexQLpSuwBiPEPDKcncWBHJBIiUTP_98J2MHfuQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2825979746745507137.post-1070095664921854003</id><published>2013-01-08T08:59:00.000-08:00</published><updated>2013-01-08T09:00:45.935-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dynamic language"/><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Technology"/><title type='text'>JavaScript: Equality Operators and their evil twins.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;There are
four operators supported by JavaScript that one can use to check conditions for
equality.&amp;nbsp; == and != as with most of the high level languages. But they
work differently.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Courier New, Courier, monospace;&quot;&gt;var &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;five = &lt;span style=&quot;color: #548235;&quot;&gt;5&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt;( five == &lt;span style=&quot;color: #c55a11;&quot;&gt;&#39;5&#39;&lt;/span&gt;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; alert(&lt;span style=&quot;color: #c55a11;&quot;&gt;&#39; The type is converted for you !&#39;&lt;/span&gt;); &lt;span style=&quot;color: #00b050;&quot;&gt;// JavaScript executes this one !!!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; alert(&lt;span style=&quot;color: #c55a11;&quot;&gt;&#39; integer and string are different&lt;/span&gt;); &lt;span style=&quot;color: #00b050;&quot;&gt;// This statement is executed in most of the typed high level
languages.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 10pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: #F2F2F2; mso-background-themecolor: background1; mso-background-themeshade: 242;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;What happens
here is JavaScript automatically converts the type and then does checking. So
we need to be extra cautious while using these operators, as they can result in
some undesired results.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;If you
need to consider type safe checking then JavaScript provide another set of
operators === and !==. These work in more familiar way as any other high level
programming language. With these operators the JS engine will return if both
the type and value are same otherwise false.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Is there
any other difference? One might quickly ask. Well, it cases when the checking
is done on same type there won’t be any difference, but in cases where the == and
!= does type conversion some very little performance effect would be there and
these operators will be slow to execute when compared to === and !==.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Segoe UI, sans-serif;&quot;&gt;Also there
can be some&amp;nbsp;inconsistencies&amp;nbsp;in the way == and != are executed, hence its advised
to use === and !== in most cases.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Segoe UI, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;To is also
ascertained by well-known JavaScript guru &lt;/span&gt;&lt;span style=&quot;background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Arial, sans-serif; font-size: 10.5pt; line-height: 107%;&quot;&gt;Douglas
Crockford&#39;s in his excellent book&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.amazon.com/dp/0596517742&quot; style=&quot;cursor: pointer; text-decoration: initial;&quot;&gt;&lt;span style=&quot;background: white; border: none windowtext 1.0pt; color: #4a6b82; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10.5pt; line-height: 107%; mso-border-alt: none windowtext 0cm; padding: 0cm;&quot;&gt;JavaScript: The Good Parts&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Arial, sans-serif; font-size: 10.5pt; line-height: 107%;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; vertical-align: baseline;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;JavaScript has two sets of equality operators:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;!==&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;, and their evil
twins&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;. The good ones work the way you would expect. If the two operands are
of the same type and have the same value, then&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;&amp;nbsp;produces&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;!==&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;&amp;nbsp;produces&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;. The evil twins do
the right thing when the operands are of the same type, but if they are of
different types, they attempt to coerce the values. the rules by which they do
that are complicated and unmemorable. These are some of the interesting cases:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; vertical-align: baseline;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;&#39;0&#39;&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// false&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// true&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;&#39;0&#39;&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// true&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: darkblue; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;&#39;false&#39;&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// false&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: darkblue; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;&#39;0&#39;&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// true&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: darkblue; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: darkblue; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;undefined&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// false&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: darkblue; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: darkblue; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// false&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: darkblue; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: darkblue; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;undefined&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// true&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;&#39;
\t\r\n &#39;&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: maroon; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;border: none windowtext 1.0pt; color: grey; font-family: Consolas; font-size: 10.5pt; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-IN; padding: 0cm;&quot;&gt;// true&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;The lack of transitivity is alarming. My advice is to never use the evil
twins. Instead, always use&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;and&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;!==&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;. All of the
comparisons just shown produce&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;&amp;nbsp;with the&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10.5pt;&quot;&gt;&amp;nbsp;operator.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F2F2F2; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-background-themecolor: background1; mso-background-themeshade: 242; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Watch out for these differences while implementing JavaScript.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://seshukv.blogspot.com/feeds/1070095664921854003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://seshukv.blogspot.com/2013/01/javascript-equality-operators-and-their.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2825979746745507137/posts/default/1070095664921854003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2825979746745507137/posts/default/1070095664921854003'/><link rel='alternate' type='text/html' href='http://seshukv.blogspot.com/2013/01/javascript-equality-operators-and-their.html' title='JavaScript: Equality Operators and their evil twins.'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02057703948262451420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2825979746745507137.post-4860038764162585274</id><published>2012-07-18T18:31:00.001-07:00</published><updated>2012-07-22T07:48:46.841-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Technology"/><title type='text'>Windows 8 Preview: First Impressions</title><content type='html'>&lt;p&gt;&amp;nbsp; &lt;h2&gt;&lt;font face=&quot;Segoe UI&quot;&gt;Change is inevitable&lt;/font&gt;&lt;/h2&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;Hollywood has been showing or out running general application styles for quite some time, of course they are the creative folks that can come up with such !deas. But now the general public will also see beautiful applications. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;For all this to happen, one should really appreciate what Apple did. I believe its Apple that showed everyone, what Art can do to computer applications. The change in MS in this direction was due to the Traction from the success of Apple’s iPhones and iPads or as they say the iOS as well as Android.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;The design of Windows 8 start screen is impressive especially because the focus here has been moved to content. As they mentioned by Jensen Harris during the MS build 2011 &lt;/font&gt;&lt;a href=&quot;http://channel9.msdn.com/Events/BUILD/BUILD2011/BPS-1004&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;8 traits of great Metro style apps&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot;&gt;&lt;font face=&quot;Segoe UI&quot;&gt; the focus should be on content, some thing that has been taken from the Web Design, but the chromelessness (no chrome) give another direction to think about design. This enables the developers to fully utilize screen space to carefully craft the applications. We will indeed or in future see beautifully designed apps on Windows as well.&lt;/font&gt;&lt;font face=&quot;Segoe UI&quot;&gt; &lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;I had been thinking for some time, whenever I see a Mac, why aren’t there artistic applications designed for Windows? Well, the thought/design process has been mostly for what the OS provides. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;And with the new Metro style that MS introduced, I’m sure we’ll see difference in the way Windows Applications are built. I hope this gets into LOB apps as well. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;Using metro style for Line of Business apps provide more usability for users. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;This is a nice start screen that introduces Live tiles. This look and feel is consistent across all Windows 8 devices. PC, Tablet (Slate) or Phone. &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBMRiyJUxCNByRskH85HJGv77xD113hUi886WnwslCVwasn4cxnZCoA2xizQctXPGtxy1PiD6Ku_Xs_uxygqAuKU0alxGgppm2LdAXJWxCSGR3DIYDheY6A6qhp41EoIebXTrp4dshK0w/s1600-h/clip_image0023.jpg&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeqw6HD-kfysr2e01rqTjgbiLrr8FeXPlE3wMa1zK57LPp2Dyc8rBIt7_epJS9zeTPakJKqT4Sb4qnS6GruLIHesYdH6FkM4lMqNl9hWF2NgY5otZ_vgYA5EBbOnfuBSuAYS3g9PFQImM/s1600-h/clip_image00212.jpg&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuedHckGOYs1hGO4PHFPT0qKTbFn3hq4YDqrjPXRAx8VoFlsslwEmjK5FIGYNe9QkybSye86sWLjp8JzwW0s6ypbTyN0Ej3iTLkKCGoEKhz__L3Dht_NyUQjlhvMK_UwYnpdUlskRiS9I/?imgmax=800&quot; width=&quot;244&quot; height=&quot;154&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;/a&gt;&lt;a name=&quot;_GoBack&quot;&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;Live tiles also enables developers to use the tile space (rectangular) to push notifications or important changes so that the users can get a quick little update on that the applications doing without going to the apps. This is like a app preview that we had with Win 7. But the fact that the developers get their own canvas to put what ever content instead of tiny live tile makes it more useful. &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;All Microsoft apps are impressive. The one I liked most is the Bing Weather App, even though it might look like a copy of Weather HD iOs App, it had its own content that tell us that its not just a copy but enough thought has been put on the design so that all necessary data is presented to the user. &lt;/font&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOHdXta94rL0HIR40pSRWgMaQ6UCn6eIJphZlyhjgkC8cgMSMhDnG7am-xYW2xkvKhRBE5NaFzX5b2p3tZb3d4c258UECTGCkjUV80ywHEWEIfgDKQ8X4Sr4O0BhPF2gZ8FShbqhyphenhyphenQ-Gs/s1600-h/clip_image0043.jpg&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJt8yHZqB3VcE79RXu7aEZonzYYSJOPXkD7eyhyphenhyphenJT8DxYzop06uFwtdE8AV0bjrD-sosYVsT6eesId8GDIGOlM23WZu6TliQyHJ3Zzx6ABF4MHI6nxfGgKrNDCq9RN3ZpU3aVQp1goZU/s1600-h/clip_image0049.jpg&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhfqE6ExWh372QZiwFmOKbgPItmKViTkIjeuHVrsb0v3qrVYucCIfVwo2pKb0VB4FoDSxKMKxsFFKaPNGubEV4vMyl9CBdKDoJuI8cmyO9z5lQoaJEtrxA_mj0VvRsmqcgaCkS9sJp9wM/?imgmax=800&quot; width=&quot;244&quot; height=&quot;154&quot;&gt;&lt;/font&gt;&lt;/a&gt;&lt;/a&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt; &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;One more difference that we see in Metro style is that mostly the data is painted from left to right rather then from top to bottom. We will be scrolling left to right as opposed to the traditional top to bottom. This might take some getting used to and special thought needs to be put on by the designers as well. But its not a compulsion. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;&lt;font face=&quot;Segoe UI&quot;&gt;Typography and Animations:&lt;/font&gt;&lt;/h2&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;Another feature that one would observe straight away is the fonts and the animations or should we call transitions. The content that pops out when you look at a well designed metro application is the font and the important content highlighted by using bigger fonts.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI0Wbl9hiPisr5zIhhBVNvpRkzLOIlr9r_3AvvwfX9-mbQh1T3H8Tf9vaJNAtdVj4GOlUKUUvX6tS_aYdxjFbvJtNcLYnN8VlojuSXY5_Vyb3c2tdB3nUQJSUINV387HQnC7bnHEZJ-2E/s1600-h/metro-realworld%25255B2%25255D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;metro-realworld&quot; border=&quot;0&quot; alt=&quot;metro-realworld&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDmmgRMZO8lKg9pht46zNqV3UNgxnnfnqTdvJYjtsvYC5rNxBUzdu5b79kGXQIbLMkUCa5BwJ5pa1jEyP-oWAbMPUP8_gJbMwgzPEoz5_T_ZBq46hecaRfhTkIUfvc6LvI9bdd5CEsNt0/?imgmax=800&quot; width=&quot;244&quot; height=&quot;143&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;This is an inspiration from real world usage at Airports, traffic signals notice boards etc. This is some thing that might help designers visualize what is more important in the content they want to present and highlight it in a specific metro design style.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;Almost every update to the content has a transition built in. These include, loading of content, refresh, deletions additions etc. Most of these transitions are available for developers for free thru WinRT, new Developer API or runtime for developing Windows 8 metro style apps.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Segoe UI&quot;&gt;Will Add more content and more thought as I use the preview OS and others.&lt;/font&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://seshukv.blogspot.com/feeds/4860038764162585274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://seshukv.blogspot.com/2012/07/windows-8-preview-first-impressions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2825979746745507137/posts/default/4860038764162585274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2825979746745507137/posts/default/4860038764162585274'/><link rel='alternate' type='text/html' href='http://seshukv.blogspot.com/2012/07/windows-8-preview-first-impressions.html' title='Windows 8 Preview: First Impressions'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02057703948262451420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuedHckGOYs1hGO4PHFPT0qKTbFn3hq4YDqrjPXRAx8VoFlsslwEmjK5FIGYNe9QkybSye86sWLjp8JzwW0s6ypbTyN0Ej3iTLkKCGoEKhz__L3Dht_NyUQjlhvMK_UwYnpdUlskRiS9I/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry></feed>