{"version":"1.0","provider_name":"Visual Studio news feed","provider_url":"https:\/\/devblogs.microsoft.com\/vsnews","author_name":"App Center Team","author_url":"https:\/\/devblogs.microsoft.com\/vsnews\/akams-author\/aadsso-100030000fe84d86c\/","title":"Announcing TypeScript 2.8","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"qSDV6SyN1p\"><a href=\"https:\/\/devblogs.microsoft.com\/vsnews\/akams-xs4s3x\/\">Announcing TypeScript 2.8<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/vsnews\/akams-xs4s3x\/embed\/#?secret=qSDV6SyN1p\" width=\"600\" height=\"338\" title=\"&#8220;Announcing TypeScript 2.8&#8221; &#8212; Visual Studio news feed\" data-secret=\"qSDV6SyN1p\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/vsnews\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/vsnews\/wp-content\/uploads\/sites\/25\/2018\/08\/vsfeaturebig.png","thumbnail_width":716,"thumbnail_height":448,"description":"Today we\u2019re excited to announce and get some early feedback with TypeScript 2.8\u2019s Release Candidate. To get started with the RC, you can access it through NuGet, or use npm with the following command: npm install -g typescript@rc TypeScript 2.8 introduces a new construct called conditional types. This new construct is based on JavaScript\u2019s conditional [&hellip;]"}