Posted on Leave a comment

Disruptions and opportunities: navigating hybrid education

When COVID-19 disrupted traditional classroom instruction and forced system and school leaders, IT professionals, educators, faculty, and students to pivot to remote learning, it also prompted re-examining education more broadly. We know from the whitepaper “The Class of 2030 and Life Ready Learning” that today’s students will need a high level of cognitive skills like problem solving, critical thinking, and creativity. And social-emotional skills have become even more important in remote and hybrid settings and require solutions that integrate pedagogy and technology accessibly and cohesively.

In Education Reimagined: the Future of Learning,” the experts from New Pedagogies for Deep Learning suggest that there are three phases that learning institutions are navigating to move education systems to a successful and sustainable hybrid model: Disruption, Transition, and Reimagining.

The Three Phases of Reimagining EducationThe Three Phases of Reimagining Education
The Three Phases of Reimagining Education

By now, many schools and universities have worked their way through the initial disruption and have been adapting to online learning for several months. As the next school year begins, there is new data showing some best practices for supporting smooth transitions for students and teachers.

Today, we’re pleased to share a new whitepaper, “Disruptions and Opportunities: Lessons from the spring of 2020,” commissioned by Microsoft in collaboration with Manchester Street Research. The report surveyed 400 K-12 educators and 381 IT professionals in the United States to understand their perspectives about the transition experience, the technology used for remote learning, the quality of student engagement, the assessment of learning outcomes, and more. This research focused on K-12 teachers, IT professionals, and the added challenges of keeping younger students engaged in learning online. Some key insights from the study are:

Microsoft Teams encourages student engagement and facilitates learning assessment

One of the most challenging aspects for teachers when moving online was how their relationships with students changed when meeting only on screens. For remote learning to be effective and sustainable, technologies that encourage meaningful engagement and interaction, with features that help teachers evaluate student progress, are critical.  The study found that Microsoft Teams users were 29% more likely than those who didn’t use Teams to describe most of their students as highly engaged. Also, Teams users were on average 23% more likely than those who didn’t use Teams to say they feel confident in their ability to assess learning outcomes while teaching remotely.

Microsoft Teams provides a collaboration lifeline for teachers

Teachers who developed a community of support among colleagues reported that this support was critical for them in developing confidence in remote teaching and learning, trying new things, discovering best practices, and solving problems. Educators in the survey who used Microsoft technology, especially those who used Teams, were 42% more likely to collaborate with their peers than those who used Google Classroom.

A clear strategy integrating technology & pedagogy is critical in hybrid learning

Expecting teachers to select from a multitude of technologies burdens them with the added responsibility of learning and assessing different technology platforms. When leaders provide clarity and direction by selecting a single set of online learning technologies, rooted in the key pedagogical approaches, teachers can get up to speed faster and have more time to focus on teaching. The data shows that for remote learning, too many options can actually cause negative outcomes. One of the study respondents, K-12 teacher Yolanda M., noted that when it came to her students, “I have noticed the difficulty for a lot of the kids is all the different platforms that the teachers have in relaying information to them. That has been really difficult for students and for parents.”

Looking back at the last school year, it’s clear that transitioning to remote learning at scale was a monumental task. And it’s been most successful when pedagogy and technology are adapted to work together to encourage collaboration, engagement, and quality learning outcomes.

It’s inspiring to see the efforts of so many dedicated education leaders, teachers, and IT professionals as they define a new era of learning: one that’s open-walled, student-centered, and unlimited by time or space. As the next academic year gets underway, it’s clear that we’re still in a transitional period and that schools and education systems are still determining the best path forward. While there are still challenges to address, we can see that when pedagogy is coupled with scalable technology for online and hybrid learning, it can help drive enhanced learning outcomes, increase well-being, and create a more fulfilling experience for teachers and students.

For a deeper dive into the findings, visit Microsoft Education’s hybrid learning page and download the complete whitepaper.

Posted on Leave a comment

Empowering remote learning with Azure Cognitive Services

This blog post was co-authored by Anny Dow, Product Marketing Manager, Azure Cognitive Services.

As schools and organizations around the world prepare for a new school year, remote learning tools have never been more critical. Educational technology, and especially AI, has a huge opportunity to facilitate new ways for educators and students to connect and learn.

Today, we are excited to announce the general availability of Immersive Reader, and shine a light on how new improvements to Azure Cognitive Services can help developers build AI apps for remote education that empower everyone.

Make content more accessible with Immersive Reader, now generally available

Immersive Reader is an Azure Cognitive Service within the Azure AI platform that helps readers read and comprehend text. Through today’s general availability, developers and partners can add Immersive Reader right into their products, enabling students of all abilities to translate in over 70 languages, read text aloud, focus attention through highlighting, other design elements, and more. 

Immersive Reader has become a critical resource for distance learning, with more than 23 million people every month using the tool to improve their reading and writing comprehension. Between February and May 2020, when many schools moved to a distance learning model, we saw a 560 percent increase in Immersive Reader usage. As the education community embarks on a new school year in the Fall, we expect to see continued momentum for Immersive Reader as a tool for educators, parents, and students.

With the general availability of Immersive Reader, we are also rolling out the following enhancements:

  • Immersive Reader SDK 1.1: Updates include support to have a page read aloud automatically, pre-translating content, and more. Learn about SDK updates.
  • New Neural Text-to-Speech (TTS) languages: Immersive Reader is adding 15 new Neural Text to Speech voices, enabling students to have content read aloud in even more languages. Learn about the new Neural Text to Speech languages.
  • New Translator languages: Translator is adding five new languages that will also be available in Immersive Reader—Odia, Kurdish (Northern), Kurdish (Central), Pashto, and Dari. Learn about the latest Translator languages.

Today, we’re adding new partners who are integrating Immersive Reader to make content more accessible, Code.org and SAFARI Montage. 

Code.org is a nonprofit dedicated to expanding access to computer science in schools. To ensure that students of all backgrounds and abilities can access their resources and course content, Code.org is integrating Immersive Reader into their platform.

“We’re thrilled to partner with Microsoft to bring Immersive Reader to the Code.org community. The inclusive capabilities of Immersive Reader to improve reading fluency and comprehension in learners of varied backgrounds, abilities, and learning styles directly aligns with our mission to ensure every student in every school has the opportunity to learn computer science.” – Hadi Partovi, Founder and CEO of Code.org

SAFARI Montage, a leading learning object repository, is integrating Immersive Reader to make it possible for students of any language background or accessibility needs to engage with content, and enable families who don’t speak the language of instruction to be more involved in their students’ learning journeys.  

“Immersive Reader is a crucial support for CPS students and families. During remote learning, particularly for our younger learners, student learning is often supported by parents, guardians, or other caregivers. Since Immersive Reader can be used to translate the student-facing instructions in our digital curriculum, families can support student learning in over 80 languages, making digital learning far more equitable and accessible than ever before! In addition, read-aloud and readability supports are game-changers for diverse learners”Giovanni Benincasa, UX Manager, Department of Curriculum, Instruction, and Digital Learning, Chicago Public Schools  

With Immersive Reader, all it takes is a single API call to help users boost literacy. To start exploring how to integrate Immersive Reader into your app or service, check out these resources: 

To see the growing list of Immersive Reader partners and learn more, check out our partners page and Immersive Reader education blog.

Bring online courses to life with speech-enabled apps

With the shift to remote learning, another challenge that educators may face is continuing to drive student engagement.

Text to Speech, a Speech service feature that allows users to convert text to lifelike audio can facilitate new ways for students to interact with content. In addition to powering features like Read Aloud in Immersive Reader and the Microsoft Edge browser, Text to Speech enables developers to build apps that speak naturally in over 110 voices with more than 45 languages and variants.

With the Audio Content Creation tool, users can more easily bring audiobooks to life and finetune audio characteristics like voice style, rate, pitch, and pronunciation to fit their scenarios—no code required. Voices can even be customized for specific characters or personas; the Custom Neural Voice capability makes it possible to build one-of-a-kind voices, starting with 30 minutes of audio. Duolingo, for example, is using the Custom Neural Voice capability to create unique voices to represent different characters in its language courses.

To learn more about how to start creating speech-enabled apps for remote learning, check out the technical Text to Speech blog and other resources:

Improve productivity and accessibility with transcription and voice commands 

AI can also be a useful tool for more seamless note-taking, making it possible for students and teachers to type with their voice. Transcribe in Word uses Speech to Text in Azure Cognitive Services to automatically transcribe your conversations. Now with speaker diarization, you can get a transcript that identifies who said what, when. 

In addition, adding voice enables more seamless experiences in Microsoft 365. For students who have difficulties writing things down, they can use AI-powered tools in Office not just for dictation but also for controls such as adding, formatting, editing, and organizing text. Word uses Language Understanding, an Azure Cognitive Service that enables you to add custom natural language understanding to your apps, to make it possible to capture ideas easily. To learn more about Language Understanding and how it is powering voice commands, check out our Language Understanding blog.

For more details on how AI is powering experiences in Microsoft 365, read the Microsoft 365 blog.

Get started today

We can’t wait to see what you’ll build. Get started today with Azure Cognitive Services and an Azure free account.

Posted on Leave a comment

Xbox unveils 3 consoles inspired by ‘Wonder Woman 1984’

To celebrate the highly anticipated release of “Wonder Woman 1984, Xbox is giving movie buffs and gamers alike the chance to own a piece of Wonder Woman lore. Inspired by the iconic armor and outfits worn by the powerful female leads of the movie comes three custom consoles like you’ve never seen them before.

Matching the stunning suit of armor worn by Wonder Woman in the film, we’ve created a one-of-a-kind Wonder Woman Golden Armor Xbox One X Console* with 24-carat gold leaves. This console was made entirely by hand features a sophisticated golden eagle crest and 3D printed Wonder Woman 1984 logo resting above it. The best part? This gold console will be auctioned off with all proceeds going to Together for Her, an initiative launched by the Charlize Theron Africa Outreach Project, leading humanitarian organization CARE, and the Entertainment Industry Foundation to stand in solidarity with women and girls around the world deploying funds and supporting the global response against domestic violence during the time of COVID-19. Stay tuned for additional details.

What’s more, you could win your very own Lasso of Truth with this custom Wonder Woman Lasso of Truth Xbox One X Console*. Inspired by the one wielded by Wonder Woman herself in the movie, this braided lasso lays perfectly across the top of the console and encircles a beautiful 3D printed Wonder Woman logo bursting with the vibrant colors of the 1980s.

For those who can’t resist an evil villain, you may find yourself interested in the Barbara Minerva Xbox One X Console*. Inspired by the punk rock look of Wonder Woman’s archenemy, this custom console boasts an intricate snakeskin pattern and faux leopard fur for a truly wild appearance. The silver spikes on the top and front of the console and gold “Wonder Woman 1984” logo were 3D printed to exactly match the size of the console.

From August 25 through September 17, fans will have the chance to win* the Wonder Woman Lasso of Truth Xbox One X Console by simply liking or retweeting the Xbox sweepstakes tweet.

The fun doesn’t stop there. You can also explore an all-new, immersive experience on Roblox for Xbox One, where you can journey to Themyscira and unlock an epic collection of avatar items featuring some of Diana’s most quintessential gear, outfits, accessories and more!

We can’t wait for “Wonder Woman 1984”, Warner Bros. Pictures’ follow up to the DC Super Hero’s first outing, 2017’s record-breaking “Wonder Woman”.  Fast forward to the 1980s as Wonder Woman’s next big screen adventure finds her facing two all-new foes: Max Lord and The Cheetah. Set to open in theaters in 2D and 3D in select theaters and IMAX, it will be distributed worldwide by Warner Bros. Pictures and is rated PG-13.  To learn more about the upcoming film, visit wonderwomanfilm.com.

*Please note, that all the Xbox is for display ONLY, not gameplay. Prize and the successful bidder will also get a standard Xbox One X.

Posted on Leave a comment

Mayor Turner and Microsoft expand digital alliance with the city of Houston

Tech company will invest in workforce development as part of “accelerate” initiative and support Houston’s innovation district at The Ion

HOUSTON — Aug. 24, 2020 — Mayor Sylvester Turner announced on Monday that the city of Houston has expanded its groundbreaking digital alliance with Microsoft to innovate in big data, artificial intelligence and the digital economy. Microsoft brings to Houston “Accelerate,” a new program designed to address economic recovery through skilling both underserved communities and re-skilling the many Americans impacted by COVID-19.

The collaboration is intended to create new economic opportunity, close equity and digital skills gaps, and prepare a workforce for the 21st century.

“Microsoft launched the Accelerate program at a time when closing the digital divide has never been more important,” said Kate Johnson, president of Microsoft U.S. “We’re thrilled to be joining Mayor Turner and an impressive group of partners in this effort to expand access to in-demand digital skills—and close digital skills gaps widened by COVID-19—through Accelerate: Houston.”

The mayor was joined by Jacky Wright, chief digital officer, Microsoft U.S., to announce details of the Houston Innovation Alliance and Accelerate: Houston. Other partners supporting the alliance include The Ion, the National Aeronautics and Space Administration, Kino-Eye Center, Upskill Houston, University of Houston College of Technology and Space Center Houston.

“More than two years ago, I announced our first transformative alliance with Microsoft — the first of its kind in the United States,” said Mayor Sylvester Turner. “Today, I am pleased to say we are taking another leap toward strengthening Houston’s global standing as a center for innovation and technology.”

Through coordination with corporate partners, K-12 school systems and higher education providers, Microsoft is developing a holistic plan for professional development/support and addressing the equity gap across the community:

  • For transitioning members of the workforce and/or local veterans, the company will offer digital literacy workshops, empowerment programs and other development training with industry experts through LinkedIn Learning, to help prepare them for opportunities in new technologies and increase digital skills training.
  • For students, the company will bring the Microsoft Imagine Academy Learning Paths to Houston schools, with content and industry certifications mapped to student skill development. Additional programming includes LinkedIn workshops, DigiCamps and DigiGirlz camps, bringing young people together to plan their future, help them identify the skills they need to reach their goals, and connect to programs and technology that will help them get there.
  • For K-16 education providers, Microsoft and partners will bring digital literacy training and Modern Workplace training focused on digital skills for educators.

“The University of Houston College of Technology and Microsoft are together providing students, professionals, businesses, and the Houston community with the resources to manage, create, communicate, and commercialize meaningfully unique opportunities,” said Dean Anthony Ambler, University of Houston College of Technology. “As game changers, the College of Technology and Microsoft transcend beyond the classroom with industry-recognized certifications, workshops, and degree programs that support workforce creation and upskilling while reinforcing a culture of innovation. These complementing activities champion the Houston community as adept practitioners and mentors in proven disciplines that apply ingenuity and technology to solve problems, improve lives, and enhance the economy.”

Through their joint efforts, Microsoft and the city of Houston will work to advance civic innovation and smart city initiatives, economic development and recovery, and digital skilling for workforce and youth.

“Our initial alliance with Microsoft, established in 2018, created the foundation for Houston to grow as a smart city. It brought startup innovation to city challenges through The Ion Smart City Accelerator, proved out cases for the use of IoT and AI to make our city safer and more resilient, and provided equitable access to technology through digital literacy, upskilling programs and Wi-Fi on public transit,” said Jesse Bounds, innovation director for the city of Houston. “This expansion will continue to build upon this foundation the skills, processes and technologies needed to drive future growth and equitable prosperity in the city and position Houston to be a shining example to others across the globe.”

To help accelerate the integration of technology and implement the vision to make Houston a center of excellence for innovation in energy transition, AI, IoT and data science, Microsoft is investing more than $1 million into programs that support social entrepreneurship and other initiatives in partnership with Houston’s Innovation District at The Ion.

“With this digital alliance, one of history’s most important and innovative technology companies becomes a key pillar of The Ion,” said David Leebron, president, Rice University. “Microsoft will help implement the vision to make Houston’s new innovation district a focal point for the future of energy, artificial intelligence, data science and smart cities.”

“As a founding partner of The Ion Smart and Resilient Cities Accelerator, Microsoft has already established a close collaboration with The Ion, supporting startups as they develop and scale their businesses and pursue pilot opportunities with the city of Houston,” said Jan E. Odegard, The Ion’s interim executive director. “In addition to supporting entrepreneurs solving challenges like mobility, clean-tech, air quality and water purification, we are excited to expand our partnership with Microsoft as part of this digital alliance with the city of Houston to include access to resources that allow us to offer more robust workforce development initiatives on-site at The Ion’s new space.”

“Houston is home to some of the world’s most important medical breakthroughs, and as the Energy Capital of the World, we’re leading the energy transition into a more sustainable future,” said Mayor Turner. “Microsoft shares my vision to make Houston the Smart City of the future and a leader among U.S. cities as we develop excellence in innovation, AI and digital equity.”

Accelerate: Houston is the latest U.S. implementation of Microsoft’s Global Skills Initiative, an ambitious plan to help 25 million people worldwide acquire new digital skills by the end of the year.

More information can be found at https://aka.ms/AccelerateHouston.

Microsoft (Nasdaq “MSFT” @microsoft) enables digital transformation for the era of an intelligent cloud and an intelligent edge. Its mission is to empower every person and every organization on the planet to achieve more.

For more information, press only:

Microsoft Media Relations, WE Communications for Microsoft, (425) 638-7777, rrt@we-worldwide.com

Mary Benton, director of communications, city of Houston, (832) 393-0830 (office), (713) 208-6229 (mobile), Mary.Benton@houstontx.gov

Ada Ortega, press secretary, city of Houston, (832) 393-0800 (office), (832) 547-3240 (mobile),
Ada.Ortega@houstontx.gov

Note to editors: For more information, news and perspectives from Microsoft, please visit the Microsoft News Center at http://news.microsoft.com. Web links, telephone numbers and titles were correct at time of publication, but may have changed. For additional assistance, journalists and analysts may contact Microsoft’s Rapid Response Team or other appropriate contacts listed at https://news.microsoft.com/microsoft-public-relations-contacts.

Posted on Leave a comment

Humans and AI: New series features people innovating to create a better world

YouTube Video

Behind each technological innovation, there is a person with a dream that they are determined to bring to fruition. Today we are excited to launch a new community and series that tells the stories of incredible heroes from all walks of life who are innovating to help solve some of society’s biggest challenges.

Their stories shine a light on discovering what is possible when big hearts, inspirational ideas and innovative technologies converge. We know that technology doesn’t change the world, people do. AI is a game-changing tool that enables people and organizations to solve complex social, health and environmental challenges. With the growing accessibility of AI, we’re seeing this in action—humans accelerating meaningful innovation to improve lives and benefit the planet. These are stories of hope and human empowerment.

Meet our AI heroes

Photos of four individuals who are featured in a new Humans and AI website

Our first four stories are dedicated to people who are innovating to fight COVID-19. Visit the site to see how they are using AI to combat the virus on multiple fronts, then chat with them live on Sept. 15 during a LinkedIn Live event, followed by a #MicrosoftAIChat on Twitter. They are, from left to right in the image above:

  • Meet Hadas Bitran: When COVID-19 ravaged the world, she saw a great need to help frontline healthcare workers by developing a COVID-19 self-assessment bot that enables people to check their symptoms before going to a medical appointment.
  • Meet Dr. Greg Bowman: When COVID-19 started, his lab decided to use their army of citizen scientists and Microsoft AI to advance research and accelerate potential treatments.
  • Meet Kelvin Summoogum: He founded MiiCare, a digital companion for the elderly that helps them live safely and independently.
  • Meet Alice Piterova: In the time of COVID-19, she and her cohort at AI for Good UK created an AI model that simulates the spread of COVID-19 in refugee camps.

Here’s how you can be a part of the conversation on Sept. 15:

LinkedIn Live at 8:15 am PT: Influencer and futurist Bernard Marr will be joined by the first four individuals featured in the Humans and AI series. Tune in live on Marr’s LinkedIn page for the live video to ask questions and meet these inspirational individuals.

Twitter chat at 9 am PT: The conversation continues on Twitter with the #MicrosoftAIChat hosted by Marr, Bitran, Bowman, Piterova and Summoogum. This Twitter chat will discuss #HumansAndAI and will be a forum for anyone to meet our team and share ideas on how technology can be applied to challenges and problems we collectively face as a united global community.

How to join the Twitter Chat:

Never participated in a Twitter chat? Welcome! We’ll ask the following five questions starting at 9 am PT on Sept. 15. Anyone can join in by sharing and answering:

  1. If you could launch an AI startup, what would it be? And “@” tag anyone you want to partner with in your reply.
  2. What problem or societal challenge drives your innovation?
  3. Why is AI a potential tool for solving societal challenges?
  4. What is the most inspiring use of AI you have seen?
  5. Do you know an incredible #HumansAndAI leader or do you have a story to share?

You can share the questions with your community or answer by quote retweeting the tweets and adding your answer + tagging the tweet with #MicrosoftAI and #HumansandAI. To follow the conversation once we get started on Twitter, just type #MicrosoftAI #HumansandAI into the search bar, or click this link to find the chat on Twitter.

Posted on Leave a comment

Universal Filmed Entertainment Group and Microsoft Azure announce partnership to accelerate live-action and animation productions

Companies pledge to bring together cloud and production expertise to create production asset platform for Universal and DreamWorks Animation films

Universal DreamWorks Microsoft logos

UNIVERSAL CITY, Calif., and REDMOND, Wash. — Aug. 21, 2020 — Universal Filmed Entertainment Group and Microsoft Corp. on Friday announced a strategic partnership to cloud-optimize live-action and animation productions. The partnership aims to empower the creative community with cloud-based production workflows that enable frictionless remote collaboration and content creation. Working together, the teams will extend DreamWorks Animation’s cutting-edge production platform to include live-action production. They will bring those workflows into Microsoft Azure and ensure Universal’s ecosystem of partners can connect to them in open, standards-based ways.

This partnership will also enable the development of near-term solutions to accelerate a return to industry production during the global pandemic by engaging a broad array of industry partners to streamline workflows and remote collaboration.

“With this partnership, Universal is continuing to build on our commitment as an industry leader in transitioning to a cloud production model across our portfolio of studios. As outlined last year in the MovieLabs 2030 vision paper, streamlining our workflows will allow for a more efficient creative process, empowering the artists and storytellers we work with to make the best content possible,” said Michael Wise, Senior Vice President and Chief Technology Officer, Universal Filmed Entertainment Group.

Jeff Wike, Chief Technology Officer at DreamWorks Animation added, “We are very excited to be collaborating with the Universal and Microsoft teams on this initiative. DreamWorks is focused on developing innovative technologies to achieve our studio’s creative ambitions, and we have been preparing for this opportunity by working with industry partners to optimize our internal solutions. Incorporating Microsoft’s Azure-based platform with our current infrastructure will enable us to provide increased and more flexible digital resources to our artists.”

For 25 years, DreamWorks has showcased the benefits of having artists and engineers work side by side to develop new pipelines and creative toolsets. For this new platform, DreamWorks and Universal technical teams will partner with Microsoft developers to extend and optimize pipelines to take advantage of Azure’s global hyper-scale storage and compute platform to support both animation and live-action content creation. Universal plans to leverage this new capability on Azure to enable easy remote production collaboration, asset reuse, and ubiquitous compute and storage to empower creatives to do their best work.

“Together with customers like Universal and DreamWorks, we are prioritizing cloud + edge technologies to help transform workflows, increase production output and reduce friction for creatives,” said Hanno Basse, media and entertainment CTO, Microsoft Azure. “Working together, we aspire to create technology for the industry, with the industry, so they can tell stories the world loves.”

Just over three years ago, Microsoft began its journey to help the media and entertainment industry extend their content creation workflows to the cloud. Since then partners such as Avid, Adobe, Technicolor, Bebop Technology, StratusCore and Teradici together with Azure HPC-Cache, Video Indexer and remote workstation technologies have helped customers render, edit and transform content through visual effects using hyper-scale cloud Microsoft Azure. Now, informed by these partners, customers like Universal and DreamWorks and industry bodies like the Entertainment Technology Center@USC, Microsoft is accelerating plans to help the industry optimize workflows, accelerate output with innovations like AI and deliver increased flexibility to meet the challenges of tomorrow.

About Universal Filmed Entertainment Group

Universal Filmed Entertainment Group (UFEG) produces, acquires, markets and distributes filmed entertainment worldwide in various media formats for theatrical, home entertainment, television and other distribution platforms. The global division includes Universal Pictures, Focus Features, Universal Pictures Home Entertainment, DreamWorks Animation Film and Television. UFEG is part of NBCUniversal, one of the world’s leading media and entertainment companies in the development, production and marketing of entertainment, news and information to a global audience. NBCUniversal owns and operates a valuable portfolio of news and entertainment networks, a premier motion picture company, significant television production operations, a leading television stations group, world-renowned theme parks and a suite of leading Internet-based businesses. NBCUniversal is a subsidiary of Comcast Corporation.

About Microsoft

Microsoft (Nasdaq “MSFT” @microsoft) enables digital transformation for the era of an intelligent cloud and an intelligent edge. Its mission is to empower every person and every organization on the planet to achieve more.

For more information, press only:

Microsoft Media Relations, WE Communications for Microsoft, (425) 638-7777, rrt@we-worldwide.com

Universal Filmed Entertainment Group (UFEG), Allison Leffingwell, (818) 777-8430, Allison.Leffingwell@nbcuni.com

Note to editors: For more information, news and perspectives from Microsoft, please visit the Microsoft News Center at http://news.microsoft.com. Web links, telephone numbers and titles were correct at time of publication, but may have changed. For additional assistance, journalists and analysts may contact Microsoft’s Rapid Response Team or other appropriate contacts listed at https://news.microsoft.com/microsoft-public-relations-contacts.

Posted on Leave a comment

Microsoft Translator adds two Kurdish dialects for text translation

Image: Night view of the citadel of Erbil

Today, Microsoft Translator adds two Kurdish dialects, Northern and Central, to its list of text translation languages. Northern and Central Kurdish are available now, or will be available soon, in the Microsoft Translator app, Office, and Translator for Bing.

You can also use Azure Cognitive Services Translator in your own applications, websites, and tools to add Northern and Central Kurdish text translation to or from more than 70 languages. To translate speech into Kurdish text, or to translate Kurdish text into another language with speech output, you can use Azure Cognitive Services Speech, which combines Translator’s AI-powered translation service with Speech’s advanced speech recognition and speech synthesis. You can view the list of languages available for speech recognition and speech synthesis on the Microsoft Translator website.

Northern and Central Kurdish are the two most common forms of the Kurdish language. Northern Kurdish, also known as Kurmanji, is spoken in Turkey, Syria, northern Iraq, and northwest and northeast Iran by 15-17 million Kurds. Central Kurdish, also known as Sorani, is spoken in Iraqi Kurdistan and western Iran by an estimated 9-12 million Kurds. These two dialects make up about 75% of all Kurdish speakers1.

Northern and Central Kurdish are generally not mutually understandable. Here are some examples of words and phrases in the two Kurdish dialects.

English Northern Kurdish Central Kurdish
Hello Silav سڵاو (Slaw)
What’s your name? Navê te çi ye? ناوت چییە؟ (Nawt tshya?)
Pleased to meet you Kêfxweş im bi nas kirina te خۆشحاڵبووم بە ناسینیت (Xoşhalbuum bi nasînit)

Learn more about the Northern and Central dialects of Kurdish on Bing.

What you can do with Microsoft Translator

At home

Translate real-time conversations, menus and street signs, websites, documents, and more using the Microsoft Translator app for Windows, iOS, Android, and the web. Learn more

At work

Globalize your business and customer interactions with text and speech translation powered by Translator and Microsoft Speech service, both members of the Azure Cognitive Services family. Learn more

In the classroom

Create a more inclusive classroom for both students and parents with live captioning and cross-language understanding. Learn more

For more information on Microsoft Translator please visit microsoft.com/translator.


1 Translators Without Borders: https://translatorswithoutborders.org/wp-content/uploads/2017/07/Kurdish-Factsheet-English.pdf

Posted on Leave a comment

Developers: Learn what’s new in TypeScript 4.0

Avatar

Daniel

Today we are thrilled to announce the availability of TypeScript 4.0! This version of the language represents our next generation of TypeScript releases, as we dive deeper into expressivity, productivity, and scalability.

If you’re not familiar with TypeScript, it’s a language that builds on top of JavaScript by adding syntax for static types. The idea is that by writing down the types of your values and where they’re used, you can use TypeScript to type-check your code and tell you about mistakes before you run your code (and even before saving your file). You can then use the TypeScript compiler to then strip away types from your code, and leaving you with clean, readable JavaScript that runs anywhere. Beyond checking, TypeScript also uses static types to power great editor tooling like auto-completion, code navigation, refactorings, and more. In fact, if you’ve used JavaScript in an editor like Visual Studio Code or Visual Studio, you’ve already been using an experience powered by types and TypeScript. You can learn more about all of this on our website.

With TypeScript 4.0, there are no major breaking changes. In fact, if you’re new to the language, now is the best time to start using it. The community is already here and growing, with working code and great new resources to learn. And one thing to keep in mind: despite all the good stuff we’re bringing in 4.0, you really only need to know the basics of TypeScript to be productive!

If you’re already using TypeScript in your project, you can either get it through NuGet or use npm with the following command:

npm install -D typescript

You can also get editor support by

TypeScript is a core part of many people’s JavaScript stack today. On npm, TypeScript saw over 50 million monthly downloads for the first time in July! And while we recognize there’s always room for growth and improvement, it’s clear that most people coding in TypeScript really do enjoy it. StackOverflow’s most recent developer survey pins TypeScript as the 2nd most-loved language. In the most recent State of JS Survey, around 89% of developers who used TypeScript said that they would use it again.

It’s worth digging a bit into how we got here. In our past two major versions, we looked back at some highlights that shined over the years. For TypeScript 4.0, we’re going to keep up that tradition.

Looking back from 3.0 onward, there’s a dizzying number of changes, but TypeScript 3.0 itself came out with a punch. Unifying tuple types and parameter lists was a big highlight, enabling tons of existing JavaScript patterns on functions. The release also featured project references to help scale up, organize, and share across codebases. One small change that had a big impact was that 3.0 introduced a type-safe alternative to any called unknown.

TypeScript 3.1 extended the capabilities of mapped types to work on tuple and array types, and made it dramatically easier to attach properties to functions without resorting to TypeScript-specific runtime features that have fallen out of use.

TypeScript 3.2 allowed object spreads on generic types, and leveraged 3.0’s capabilities to better model meta-programming with functions by strictly typing bind, call, and apply. TypeScript 3.3 focused a bit on stability following 3.2, but also brought quality-of-life improvements when using union type methods, and added file-incremental builds under --build mode.

In the 3.4 release, we leaned farther into supporting functional patterns, with better support for immutable data structures, and improved inference on higher-order generic functions. As a big plus, this release introduced the --incremental flag, a way to get faster compiles and type-checks by avoiding a full rebuild on every run of TypeScript, without project references.

With TypeScript 3.5 and 3.6, we saw some tightening up of the type system rules, along with smarter compatibility checking rules.

TypeScript 3.7 was a very noteworthy release because it featured a rich combination of new type system features with ECMAScript features. From the type-system side, we saw recursive type alias references and support for assertion-style functions, both which are unique type-system features. From the JavaScript side, the release brought optional chaining and coalescing, two of the most highly demanded features for TypeScript and JavaScript users alike, championed in TC39 in part by our team.

Much more recently, 3.8 and 3.9 have brought type-only imports/exports, along with ECMAScript features like private fields, top-level await in modules, and new export * syntaxes. These releases also delivered performance and scalability optimizations.

We haven’t even touched on all the work in our language service, our infrastructure, our website, and other core projects which are incredibly valuable to the TypeScript experience. Beyond the core team’s projects is the incredible community of contributors in the ecosystem, pushing the experience forward, and helping out with DefinitelyTyped and even TypeScript itself. DefinitelyTyped had just 80 pull requests in 2012 when it first started, picking up on the tail end of the year. In 2019, it had over 8300 pull requests, which still astounds us. These contributions are fundamental to the TypeScript experience, so we’re grateful for such a bustling and eager community that’s been improving the ecosystem and pushed us to constantly improve.

What’s New?

All this brings us to 4.0! So, without further ado, let’s dive into what’s new!

Variadic Tuple Types

Consider a function in JavaScript called concat that takes two array or tuple types and concatenates them together to make a new array.

function concat(arr1, arr2) { return [...arr1, ...arr2];
}

Also consider tail, that takes an array or tuple, and returns all elements but the first.

function tail(arg) { const [_, ...result] = arg; return result
}

How would we type either of these in TypeScript?

For concat, the only valid thing we could do in older versions of the language was to try and write some overloads.

function concat(arr1: [], arr2: []): [];
function concat<A>(arr1: [A], arr2: []): [A];
function concat<A, B>(arr1: [A, B], arr2: []): [A, B];
function concat<A, B, C>(arr1: [A, B, C], arr2: []): [A, B, C];
function concat<A, B, C, D>(arr1: [A, B, C, D], arr2: []): [A, B, C, D];
function concat<A, B, C, D, E>(arr1: [A, B, C, D, E], arr2: []): [A, B, C, D, E];
function concat<A, B, C, D, E, F>(arr1: [A, B, C, D, E, F], arr2: []): [A, B, C, D, E, F];)

Uh…okay, that’s…seven overloads for when the second array is always empty. Let’s add some for when arr2 has one argument.

function concat<A2>(arr1: [], arr2: [A2]): [A2];
function concat<A1, A2>(arr1: [A1], arr2: [A2]): [A1, A2];
function concat<A1, B1, A2>(arr1: [A1, B1], arr2: [A2]): [A1, B1, A2];
function concat<A1, B1, C1, A2>(arr1: [A1, B1, C1], arr2: [A2]): [A1, B1, C1, A2];
function concat<A1, B1, C1, D1, A2>(arr1: [A1, B1, C1, D1], arr2: [A2]): [A1, B1, C1, D1, A2];
function concat<A1, B1, C1, D1, E1, A2>(arr1: [A1, B1, C1, D1, E1], arr2: [A2]): [A1, B1, C1, D1, E1, A2];
function concat<A1, B1, C1, D1, E1, F1, A2>(arr1: [A1, B1, C1, D1, E1, F1], arr2: [A2]): [A1, B1, C1, D1, E1, F1, A2];

We hope it’s clear that this is getting unreasonable. Unfortunately, you’d also end up with the same sorts of issues typing a function like tail.

This is another case of what we like to call “death by a thousand overloads”, and it doesn’t even solve the problem generally. It only gives correct types for as many overloads as we care to write. If we wanted to make a catch-all case, we’d need an overload like the following:

function concat<T, U>(arr1: T[], arr2: U[]): Array<T | U>;

But that signature doesn’t encode anything about the lengths of the input, or the order of the elements, when using tuples.

TypeScript 4.0 brings two fundamental changes, along with inference improvements, to make typing these possible.

The first change is that spreads in tuple type syntax can now be generic. This means that we can represent higher-order operations on tuples and arrays even when we don’t know the actual types we’re operating over. When generic spreads are instantiated (or, replaced with a real type) in these tuple types, they can produce other sets of array and tuple types.

For example, that means we can type function like tail, without our “death by a thousand overloads” issue.

function tail<T extends any[]>(arr: readonly [any, ...T]) { const [_ignored, ...rest] = arr; return rest;
} const myTuple = [1, 2, 3, 4] as const;
const myArray = ["hello", "world"]; // type [2, 3, 4]
const r1 = tail(myTuple); // type [2, 3, 4, ...string[]]
const r2 = tail([...myTuple, ...myArray] as const);

The second change is that rest elements can occur anywhere in a tuple – not just at the end!

type Strings = [string, string];
type Numbers = [number, number]; // [string, string, number, number, boolean]
type StrStrNumNumBool = [...Strings, ...Numbers, boolean];

Previously, TypeScript would issue an error like the following:

A rest element must be last in a tuple type.

But with TypeScript 4.0, this restriction is relaxed.

Note that in cases when we spread in a type without a known length, the resulting type becomes unbounded as well, and all the following elements factor into the resulting rest element type.

type Strings = [string, string];
type Numbers = number[] // [string, string, ...Array<number | boolean>]
type Unbounded = [...Strings, ...Numbers, boolean];

By combining both of these behaviors together, we can write a single well-typed signature for concat:

type Arr = readonly any[]; function concat<T extends Arr, U extends Arr>(arr1: T, arr2: U): [...T, ...U] { return [...arr1, ...arr2];
}

While that one signature is still a bit lengthy, it’s just one signature that doesn’t have to be repeated, and it gives predictable behavior on all arrays and tuples.

This functionality on its own is great, but it shines in more sophisticated scenarios too. For example, consider a function to partially apply arguments called partialCall. partialCall takes a function – let’s call it f – along with the initial few arguments that f expects. It then returns a new function that takes any other arguments that f still needs, and calls f when it receives them.

function partialCall(f, ...headArgs) { return (...tailArgs) => f(...headArgs, ...tailArgs)
}

TypeScript 4.0 improves the inference process for rest parameters and rest tuple elements so that we can type this and have it “just work”.

type Arr = readonly unknown[]; function partialCall<T extends Arr, U extends Arr, R>( f: (...args: [...T, ...U]) => R, ...headArgs: T
) { return (...tailArgs: U) => f(...headArgs, ...tailArgs)
}

In this case, partialCall understands which parameters it can and can’t initially take, and returns functions that appropriately accept and reject anything left over.

const foo = (x: string, y: number, z: boolean) => {} // This doesn't work because we're feeding in the wrong type for 'x'.
const f1 = partialCall(foo, 100);
// ~~~
// error! Argument of type 'number' is not assignable to parameter of type 'string'. // This doesn't work because we're passing in too many arguments.
const f2 = partialCall(foo, "hello", 100, true, "oops")
// ~~~~~~
// error! Expected 4 arguments, but got 5. // This works! It has the type '(y: number, z: boolean) => void'
const f3 = partialCall(foo, "hello"); // What can we do with f3 now? f3(123, true); // works! f3();
// error! Expected 2 arguments, but got 0. f3(123, "hello");
// ~~~~~~~
// error! Argument of type 'string' is not assignable to parameter of type 'boolean'.

Variadic tuple types enable a lot of new exciting patterns, especially around function composition. We expect we may be able to leverage it to do a better job type-checking JavaScript’s built-in bind method. A handful of other inference improvements and patterns also went into this, and if you’re interested in learning more, you can take a look at the pull request for variadic tuples.

Labeled Tuple Elements

Improving the experience around tuple types and parameter lists is important because it allows us to get strongly typed validation around common JavaScript idioms – really just slicing and dicing argument lists and passing them to other functions. The idea that we can use tuple types for rest parameters is one place where this is crucial.

For example, the following function that uses a tuple type as a rest parameter…

function foo(...args: [string, number]): void { // ...
}

…should appear no different from the following function…

function foo(arg0: string, arg1: number): void { // ...
}

…for any caller of foo.

foo("hello", 42); // works foo("hello", 42, true); // error
foo("hello"); // error

There is one place where the differences begin to become observable though: readability. In the first example, we have no parameter names for the first and second elements. While these have no impact on type-checking, the lack of labels on tuple positions can make them harder to use – harder to communicate our intent.

That’s why in TypeScript 4.0, tuples types can now provide labels.

type Range = [start: number, end: number];

To deepen the connection between parameter lists and tuple types, the syntax for rest elements and optional elements mirrors the syntax for parameter lists.

type Foo = [first: number, second?: string, ...rest: any[]];

There are a few rules when using labeled tuples. For one, when labeling a tuple element, all other elements in the tuple must also be labeled.

type Bar = [first: string, number];
// ~~~~~~
// error! Tuple members must all have names or all not have names.

It’s worth noting – labels don’t require us to name our variables differently when destructuring. They’re purely there for documentation and tooling.

function foo(x: [first: string, second: number]) { // ... // note: we didn't need to name these 'first' and 'second' let [a, b] = x; // ...
}

Overall, labeled tuples are handy when taking advantage of patterns around tuples and argument lists, along with implementing overloads in a type-safe way. In fact, TypeScript’s editor support will try to display them as overloads when possible.

Signature help displaying a union of labeled tuples as in a parameter list as two signatures

To learn more, check out the pull request for labeled tuple elements.

Class Property Inference from Constructors

TypeScript 4.0 can now use control flow analysis to determine the types of properties in classes when noImplicitAny is enabled.

class Square { // Previously: implicit any! // Now: inferred to `number`! area; sideLength; constructor(sideLength: number) { this.sideLength = sideLength; this.area = sideLength ** 2; }
}

In cases where not all paths of a constructor assign to an instance member, the property is considered to potentially be undefined.

class Square { sideLength; constructor(sideLength: number) { if (Math.random()) { this.sideLength = sideLength; } } get area() { return this.sideLength ** 2; // ~~~~~~~~~~~~~~~ // error! Object is possibly 'undefined'. }
}

In cases where you know better (e.g. you have an initialize method of some sort), you’ll still need an explicit type annotation along with a definite assignment assertion (!) if you’re in strictPropertyInitialization.

class Square { // definite assignment assertion // v sideLength!: number; // ^^^^^^^^ // type annotation constructor(sideLength: number) { this.initialize(sideLength) } initialize(sideLength: number) { this.sideLength = sideLength; } get area() { return this.sideLength ** 2; }
}

For more details, see the implementing pull request.

Short-Circuiting Assignment Operators

JavaScript, and a lot of other languages, support a set of operators called compound assignment operators. Compound assignment operators apply an operator to two arguments, and then assign the result to the left side. You may have seen these before:

// Addition
// a = a + b
a += b; // Subtraction
// a = a - b
a -= b; // Multiplication
// a = a * b
a *= b; // Division
// a = a / b
a /= b; // Exponentiation
// a = a ** b
a **= b; // Left Bit Shift
// a = a << b
a <<= b;

So many operators in JavaScript have a corresponding assignment operator! Up until recently, however, there were three notable exceptions: logical and (&&), logical or (||), and nullish coalescing (??).

That’s why TypeScript 4.0 supports a new ECMAScript feature to add three new assignment operators: &&=, ||=, and ??=.

These operators are great for substituting any example where a user might write code like the following:

a = a && b;
a = a || b;
a = a ?? b;

Or a similar if block like

// could be 'a ||= b'
if (!a) { a = b;
}

There are even some patterns we’ve seen (or, uh, written ourselves) to lazily initialize values, only if they’ll be needed.

let values: string[]; // Before
(values ?? (values = [])).push("hello"); // After
(values ??= []).push("hello");

(look, we’re not proud of all the code we write…)

On the rare case that you use getters or setters with side-effects, it’s worth noting that these operators only perform assignments if necessary. In that sense, not only is the right side of the operator “short-circuited” – the assignment itself is too.

obj.prop ||= foo(); // roughly equivalent to either of the following obj.prop || (obj.prop = foo()); if (!obj.prop) { obj.prop = foo();
}

Try running the following example to see how that differs from always performing the assignment.

const obj = { get prop() { console.log("getter has run"); // Replace me! return Math.random() < 0.5; }, set prop(_val: boolean) { console.log("setter has run"); }
}; function foo() { console.log("right side evaluated"); return true;
} console.log("This one always runs the setter");
obj.prop = obj.prop || foo(); console.log("This one *sometimes* runs the setter");
obj.prop ||= foo();

We’d like to extend a big thanks to community member Wenlu Wang for this contribution!

For more details, you can take a look at the pull request here. You can also check out TC39’s proposal repository for this feature.

unknown on catch Clause Bindings

Since the beginning days of TypeScript, catch clause variables have always been typed as any. This meant that TypeScript allowed you to do anything you wanted with them.

try { // ...
}
catch (x) { // x has type 'any' - have fun! console.log(x.message); console.log(x.toUpperCase()); x++; x.yadda.yadda.yadda();
}

The above has some undesirable behavior if we’re trying to prevent more errors from happening in our error-handling code! Because these variables have the type any by default, they lack any type-safety which could have errored on invalid operations.

That’s why TypeScript 4.0 now lets you specify the type of catch clause variables as unknown instead. unknown is safer than any because it reminds us that we need to perform some sorts of type-checks before operating on our values.

try { // ...
}
catch (e: unknown) { // error! // Property 'toUpperCase' does not exist on type 'unknown'. console.log(e.toUpperCase()); if (typeof e === "string") { // works! // We've narrowed 'e' down to the type 'string'. console.log(e.toUpperCase()); }
}

While the types of catch variables won’t change by default, we might consider a new --strict mode flag in the future so that users can opt in to this behavior. In the meantime, it should be possible to write a lint rule to force catch variables to have an explicit annotation of either : any or : unknown.

For more details you can peek at the changes for this feature.

Custom JSX Factories

When using JSX, a fragment is a type of JSX element that allows us to return multiple child elements. When we first implemented fragments in TypeScript, we didn’t have a great idea about how other libraries would utilize them. Nowadays most other libraries that encourage using JSX and support fragments have a similar API shape.

In TypeScript 4.0, users can customize the fragment factory through the new jsxFragmentFactory option.

As an example, the following tsconfig.json file tells TypeScript to transform JSX in a way compatible with React, but switches each factory invocation to h instead of React.createElement, and uses Fragment instead of React.Fragment.

{ "compilerOptions": { "target": "esnext", "module": "commonjs", "jsx": "react", "jsxFactory": "h", "jsxFragmentFactory": "Fragment" }
}

In cases where you need to have a different JSX factory on a per-file basis, you can take advantage of the new /** @jsxFrag */ pragma comment. For example, the following…

// Note: these pragma comments need to be written
// with a JSDoc-style multiline syntax to take effect.
/** @jsx h */
/** @jsxFrag Fragment */ import { h, Fragment } from "preact"; let stuff = <> <div>Hello</div>
</>;

…will get transformed to this output JavaScript…

// Note: these pragma comments need to be written
// with a JSDoc-style multiline syntax to take effect.
/** @jsx h */
/** @jsxFrag Fragment */
import { h, Fragment } from "preact";
let stuff = h(Fragment, null, h("div", null, "Hello"));

We’d like to extend a big thanks to community member Noj Vek for sending this pull request and patiently working with our team on it.

You can see that the pull request for more details!

Speed Improvements in build mode with --noEmitOnError

Previously, compiling a program after a previous compile with errors under --incremental would be extremely slow when using the --noEmitOnError flag. This is because none of the information from the last compilation would be cached in a .tsbuildinfo file based on the --noEmitOnError flag.

TypeScript 4.0 changes this which gives a great speed boost in these scenarios, and in turn improves --build mode scenarios (which imply both --incremental and --noEmitOnError).

For details, read up more on the pull request.

--incremental with --noEmit

TypeScript 4.0 allows us to use the --noEmit flag when while still leveraging --incremental compiles. This was previously not allowed, as --incremental needs to emit a .tsbuildinfo files; however, the use-case to enable faster incremental builds is important enough to enable for all users.

For more details, you can see the implementing pull request.

Editor Improvements

The TypeScript compiler doesn’t only power the editing experience for TypeScript itself in most major editors – it also powers the JavaScript experience in the Visual Studio family of editors and more. For that reason, much of our work focuses on improving editor scenarios – the place you spend most of your time as a developer.

Using new TypeScript/JavaScript functionality in your editor will differ depending on your editor, but

You can check out a partial list of editors that have support for TypeScript to learn more about whether your favorite editor has support to use new versions.

Convert to Optional Chaining

Optional chaining is a recent feature that’s received a lot of love. That’s why TypeScript 4.0 brings a new refactoring to convert common patterns to take advantage of optional chaining and nullish coalescing!

Converting a && a.b.c && a.b.c.d.e.f() to a?.b.c?.d.e.f.()

Keep in mind that while this refactoring doesn’t perfectly capture the same behavior due to subtleties with truthiness/falsiness in JavaScript, we believe it should capture the intent for most use-cases, especially when TypeScript has more precise knowledge of your types.

For more details, check out the pull request for this feature.

/** @deprecated */ Support

TypeScript’s editing support now recognizes when a declaration has been marked with a /** @deprecated * JSDoc comment. That information is surfaced in completion lists and as a suggestion diagnostic that editors can handle specially. In an editor like VS Code, deprecated values are typically displayed a strike-though style like this.

Some examples of deprecated declarations with strikethrough text in the editor

This new functionality is available thanks to Wenlu Wang. See the pull request for more details.

Partial Semantic Mode at Startup

We’ve heard a lot from users suffering from long startup times, especially on bigger projects. The culprit is usually a process called program construction. This is the process of starting with an initial set of root files, parsing them, finding their dependencies, parsing those dependencies, finding those dependencies’ dependencies, and so on. The bigger your project is, the longer you’ll have to wait before you can get basic editor operations like go-to-definition or quick info.

That’s why we’ve been working on a new mode for editors to provide a partial experience until the full language service experience has loaded up. The core idea is that editors can run a lightweight partial server that only looks at the current files that the editor has open.

It’s hard to say precisely what sorts of improvements you’ll see, but anecdotally, it used to take anywhere between 20 seconds to a minute before TypeScript would become fully responsive on the Visual Studio Code codebase. In contrast, our new partial semantic mode seems to bring that delay down to just a few seconds. As an example, in the following video, you can see two side-by-side editors with TypeScript 3.9 running on the left and TypeScript 4.0 running on the right.

When restarting both editors on a particularly large codebase, the one with TypeScript 3.9 can’t provide completions or quick info at all. On the other hand, the editor with TypeScript 4.0 can immediately give us a rich experience in the current file we’re editing, despite loading the full project in the background.

Currently the only editor that supports this mode is Visual Studio Code which has some UX improvements coming up in Visual Studio Code Insiders. We recognize that this experience may still have room for polish in UX and functionality, and we have a list of improvements in mind. We’re looking for more feedback on what you think might be useful.

For more information, you can see the original proposal, the implementing pull request, along with the follow-up meta issue.

Smarter Auto-Imports

Auto-import is a fantastic feature that makes coding a lot easier; however, every time auto-import doesn’t seem to work, it can throw users off a lot. One specific issue that we heard from users was that auto-imports didn’t work on dependencies that were written in TypeScript – that is, until they wrote at least one explicit import somewhere else in their project.

Why would auto-imports work for @types packages, but not for packages that ship their own types? It turns out that auto-imports only work on packages your project already includes. Because TypeScript has some quirky defaults that automatically add packages in node_modules/@types to your project, those packages would be auto-imported. On the other hand, other packages were excluded because crawling through all your node_modules packages can be really expensive.

All of this leads to a pretty lousy getting started experience for when you’re trying to auto-import something that you’ve just installed but haven’t used yet.

TypeScript 4.0 now does a little extra work in editor scenarios to include the packages you’ve listed in your package.json‘s dependencies (and peerDependencies) fields. The information from these packages is only used to improve auto-imports, and doesn’t change anything else like type-checking. This allows us to provide auto-imports for all of your dependencies that have types, without incurring the cost of a complete node_modules search.

In the rare cases when your package.json lists more than ten typed dependencies that haven’t been imported yet, this feature automatically disables itself to prevent slow project loading. To force the feature to work, or to disable it entirely, you should be able to configure your editor. For Visual Studio Code, this is the “Include Package JSON Auto Imports” (or typescript.preferences.includePackageJsonAutoImports) setting.

Configuring 'include package JSON auto imports' For more details, you can see the proposal issue along with the implementing pull request.

Our New Website!

The TypeScript website has recently been rewritten from the ground up and rolled out!

A screenshot of the new TypeScript website

We already wrote a bit about our new site, so you can read up more there; but it’s worth mentioning that we’re still looking to hear what you think! If you have questions, comments, or suggestions, you can file them over on the website’s issue tracker.

Breaking Changes

lib.d.ts Changes

Our lib.d.ts declarations have changed – most specifically, types for the DOM have changed. The most notable change may be the removal of document.origin which only worked in old versions of IE and Safari MDN recommends moving to self.origin.

Properties Overriding Accessors (and vice versa) is an Error

Previously, it was only an error for properties to override accessors, or accessors to override properties, when using useDefineForClassFields; however, TypeScript now always issues an error when declaring a property in a derived class that would override a getter or setter in the base class.

class Base { get foo() { return 100; } set foo() { // ... }
} class Derived extends Base { foo = 10;
// ~~~
// error!
// 'foo' is defined as an accessor in class 'Base',
// but is overridden here in 'Derived' as an instance property.
}
class Base { prop = 10;
} class Derived extends Base { get prop() { // ~~~~ // error! // 'prop' is defined as a property in class 'Base', but is overridden here in 'Derived' as an accessor. return 100; }
}

See more details on the implementing pull request.

Operands for delete must be optional.

When using the delete operator in strictNullChecks, the operand must now be any, unknown, never, or be optional (in that it contains undefined in the type). Otherwise, use of the delete operator is an error.

interface Thing { prop: string;
} function f(x: Thing) { delete x.prop; // ~~~~~~ // error! The operand of a 'delete' operator must be optional.
}

See more details on the implementing pull request.

Usage of TypeScript’s Node Factory is Deprecated

Today TypeScript provides a set of “factory” functions for producing AST Nodes; however, TypeScript 4.0 provides a new node factory API. As a result, for TypeScript 4.0 we’ve made the decision to deprecate these older functions in favor of the new ones.

For more details, read up on the relevant pull request for this change.

What’s Next?

You’ve reached the end of this release post, but luckily there’s more coming. TypeScript 4.1’s iteration plan is already up so you can get a sense of what’s on the horizon. In the meantime, you can give new features in 4.1 a shot by using nightly builds in your workspace, or maybe just in your editor. Whether you’re on TypeScript 4.0, or the next version, we’re interested in hearing feedback! Feel free to leave a comment below, reach out over Twitter, or file an issue on GitHub.

We said it once, and we’ll say it again: we owe so much to our community for all their work and dedication. In turn, we want to making coding in TypeScript and JavaScript the pure joy you deserve. This involves not just focusing on one thing, but a combination of improving the language and editing experience, keeping an eye on speed, iterating on our UX, smoothing the onboarding and learning experience as a whole, and more.

Thank you so much, and enjoy 4.0!

Happy Hacking!

– Daniel Rosenwasser and the TypeScript Team

Posted on Leave a comment

Battletoads return for new gaming adventures

Summary

  • Battletoads launches today with Xbox Game Pass and on Xbox One, Windows 10 and Steam.
  • Celebrate with crossover goodies, new merchandise, free comics and more!
  • Hear from the ’Toads themselves in an exclusive new interview with a familiar face.

26 years after their last game hit the arcades, the wait is finally over: Zitz, Rash and Pimple are leaping back into action today, August 20, with Xbox Game Pass and on Xbox One, Windows 10 PC and Steam worldwide! Just like in the original Battletoads games, they’re embarking on an outer-space adventure packed full of gameplay that takes in everything from brawling action to precision platforming, space battles and more.

There’s no need to take on these challenges alone – not when up to three players can team up for some drop-in couch co-op. That’s exactly what some of the Battletoads team did in our Gameplay Showcase earlier this week, and if you missed it, you can watch them in action here:

[embedded content]

In the weeks leading up to our launch extravaganza we’ve been providing players with plenty of ways to get more Battletoads in their lives. Our art contest to win a hand-drawn animation cel used in the game is already underway, and we also added a Battletoads EP to streaming and download services so you can rock out to the game’s soundtrack whenever you please.

Keen to support the amphibians’ arrival, the Sea of Thieves team recently unveiled the in-game Fightin’ Frogs Ship Set – it’s due to go on sale in the Sea of Thieves Pirate Emporium later this year, but you can plunder it for yourself right now, free of charge, by completing the first act of Battletoads! Check out the video for more specifics on how to snag the set.

[embedded content]

Now that the game’s available to play, it doesn’t mean we’re out of surprises. Not only is there an official Battletoads Xbox One controller design incoming from Xbox Design Lab, we’re happy to unveil a whole new range of Battletoads merchandise over at the official Rare store, with new product types featuring the redesigned logo, the cast of wild new characters that the ’Toads will be butting heads with during the game’s cartoon-style story, and much more.


Speaking of stories, we know Battletoads fans will have been wondering what the iconic trio have been up to between games. To answer that, we’ve teamed up with our friends at Titan Comics to create a three-part comic series that chronicles a ‘lost adventure’, helping to bridge the gap between our heroes’ last starring role in Battletoads Arcade and the present day. All three issues will be made available to read for free over at comiXology – so make sure you’re following Rare on Twitter, Facebook or Instagram so you don’t miss out when the first instalment lands!

We teased another upcoming collaboration with iam8bit last week, and today’s the day we pull back the curtain on two new premium Battletoads items. Firstly, there’s the Smash Hits vinyl soundtrack, comprising two LPs featuring music from the 8-bit original as well as the latest instalment in the series. Secondly, there’s the Legacy Cartridge Collection – physical editions of the original game, newly amped up with deluxe packaging and two ’Toad-themed color variants. Both items are limited runs and are live for pre-order now on iam8bit’s website!

We’re incredibly excited to launch this brand new Battletoads for a new generation of gamers, but what about Zitz, Rash and Pimple themselves? To find out, we sent Larry Hryb, Xbox Live’s Major Nelson, halfway across the galaxy to an intergalactic premiere where he got the chance to meet the ’Toads in person. Check out that lively interview here:

[embedded content]

Whether you’re a Battletoads veteran from the ’90s or this is your first time experiencing the multi-genre mayhem of the series, we hope you enjoy the new game as much as Dlala Studios and Rare have enjoyed bringing Zitz, Rash and Pimple brawling, leaping and quipping headlong into 2020. We couldn’t be happier to say it: yes, we have Battletoads, and so do you. Get it with Xbox Game Pass now or buy it from the Microsoft Store page or through Steam. The Battletoads are back!

Posted on Leave a comment

Educators: Get ready for the school year with free event support, tech training

As we head toward a new school year that will be largely remote or hybrid, educators are faced with new challenges: creating safe and healthy learning environments and designing welcoming, engaging experiences that are accessible for all students. Like graduations at the end of the year, new student orientation is an especially important experience that connects students, faculty, and administrators and sets the tone for the year.

Institutions from K-12 schools through universities plan events that often take place over the course of several days to help new students feel comfortable, show them what makes their school unique, and connect them to others. And beyond the fun and camaraderie they create, orientation events are often some of the best times for faculty and administrators to share important information.

Starting today, the Microsoft Store team is offering free support to help institutions drive engaging online orientations and help staff and students make the most of their tech for online learning. Sign up here to get started!

With the current need to limit in-person interaction, schools are recognizing that orientation shouldn’t be one single event, but an ongoing program that keeps students engaged. So, how will institutions present all their welcome and informational sessions when classes may be online or hybrid, and when many students may not physically travel to campus?

Online events will be their best bet. Starting today, the Microsoft Store team is offering free support to help institutions drive engaging online orientations and help staff and students make the most of their tech for online learning. Just tell us what you need to help your students thrive in an online or hybrid learning environment, and our team of nearly 3,000 talented Store associates will help you get the tech training you need to start the new school year with confidence. From smaller-scale sessions to large-scale orientations and trainings, including free Teams Live Events for up to 20,000 participants (until September 30, 2020), Microsoft can help you make the most of remote learning software—we’re here to help, so contact us today!

When you reach out to the Microsoft Store, you can be confident that you’ll get the support you need to make the most of your event. After working with Store associates to plan a virtual graduation, Sandra Ware, Community Partner, STEM Education Advocate, and state education consultant over Virtual Learning for the State of Michigan shared, “I’ve witnessed first-hand the impact that Microsoft’s virtual programs have made and continue to make. Through their video conference platform Teams, thousands of students across the country were able to hear their names called during the virtual graduation initiative. This may seem like a small thing in the midst of global pandemic, but it’s huge when you’re a student who’s worked extremely hard for the one moment when you, your family, and your friends celebrate the completion of a chapter and the beginning of a new one. It’s not just our students’ win; but it’s everyone’s win.”

For extra guidance as you plan for the new year, we’ve also put together an e-book with a handful of resources that provide strategies and ideas for preparing for the transition back to school and planning engaging events with Microsoft Teams that connect students, faculty, and administrators with a more personalized experience.

Preparing and presenting creative, engaging online events sounds like a daunting task—but many organizations are already designing and delivering unique experiences.

SUNY Empire State College in New York was founded specifically to provide individualized and distance learning, first with correspondence courses before launching their first online programs in 1995. So when the pandemic hit, their faculty, administrators, and students were already set up and familiar with Microsoft Teams for all of their remote classes and events.

“SUNY Empire State College is no stranger to online and distance learning, so we were able to make the transition smoothly to protect our students, faculty, and staff at the start of the pandemic,” said Kyle Adams, the college’s Vice President for Strategic Communications. “Communication was key to that transition, not only to deliver information but to hear concerns, answer questions, and establish a calm and deliberative tone in a time of uncertainty. Teams Meetings and Live Events helped us stay connected at every level, from class sessions to staff meetings and town halls for students and employees.”

Adams said that being able to meet, collaborate, and engage with each other and students in a rich virtual environment will be critical as SUNY Empire heads into the new school year and beyond, and continues to adapt to the times.

Though everything is new and different this year, thanks to Teams, Teams Live, and other tools like Flipgrid, organizations can welcome new students with energizing and interactive events of all sizes. To get started developing your plan for creative and engaging back-to-school events, complete the Microsoft Stores contact form and download the Orientation Kit e-book.