diff --git a/src/meta/play-meta.js b/src/meta/play-meta.js
index 7d6afa6e65..94370b664d 100644
--- a/src/meta/play-meta.js
+++ b/src/meta/play-meta.js
@@ -13,6 +13,7 @@ import {
ExpandingCards,
AnalogClock,
PasswordGenerator,
+WhyTypescript,
//import play here
} from "plays";
@@ -198,5 +199,18 @@ export const plays = [
cover: 'https://securityintelligence.com/wp-content/uploads/2018/10/si-eight-character-password-feature.jpg',
blog: '',
video: ''
+ }, {
+ id: 'pl-why-typescript',
+ name: 'Why Typescript',
+ description: 'A simplistic way of understanding the existence of TypeScript',
+ component: () => {return },
+ path: '/plays/why-typescript',
+ level: 'Intermediate',
+ tags: 'TSX,TypeScript,Learning,KnowWhat',
+ github: 'koustov',
+ cover: 'https://res.cloudinary.com/dgtdljyul/image/upload/v1651923177/ts_why_adazpf.png',
+ blog: '',
+ video: '',
+ language: 'ts'
}, //replace new play item here
];
diff --git a/src/plays/index.js b/src/plays/index.js
index 95867efe46..754a500644 100644
--- a/src/plays/index.js
+++ b/src/plays/index.js
@@ -15,4 +15,5 @@ export { default as ExpandingCards } from 'plays/expanding-cards/ExpandingCards'
export { default as AnalogClock } from 'plays/analog-clock/AnalogClock';
export { default as PasswordGenerator } from 'plays/password-generator/PasswordGenerator';
+export { default as WhyTypescript } from 'plays/why-typescript/WhyTypescript';
//add export here
diff --git a/src/plays/why-typescript/Readme.md b/src/plays/why-typescript/Readme.md
new file mode 100644
index 0000000000..b67afcf40e
--- /dev/null
+++ b/src/plays/why-typescript/Readme.md
@@ -0,0 +1,12 @@
+# Why Typescript
+The `Why Typescript` project shows how `TypeScript` can be used .
+
+- It uses simple concept of interface.
+- Leverages class and objects.
+- Demonstrates the power of casting.
+- Shows a process to load json onto your application.
+- It shows component creation using TypeScript and consumption
+
+Well, TypeScript is way more than what has been demonstrated here. The idea is to bring a pointer where "sky is the only limit"
+
+Happy Coding!
diff --git a/src/plays/why-typescript/WhyTypescript.tsx b/src/plays/why-typescript/WhyTypescript.tsx
new file mode 100644
index 0000000000..31e8784bc2
--- /dev/null
+++ b/src/plays/why-typescript/WhyTypescript.tsx
@@ -0,0 +1,35 @@
+import * as React from "react";
+import { getPlayById } from "meta/play-meta-util";
+
+import PlayHeader from "common/playlists/PlayHeader";
+import Wizard from "./wizard";
+import data from "./data.json";
+
+function WhyTypescript(props: any) {
+ // Do not remove the below lines.
+ // The following code is to fetch the current play from the URL
+ const { id } = props;
+ const play = getPlayById(id);
+
+ // Your Code Start below.
+
+ return (
+ <>
+
+
+
+ {/* Your Code Starts Here */}
+
+
Play Details - Why Typescript
+
+
+
+
+ {/* Your Code Ends Here */}
+
+
+ >
+ );
+}
+
+export default WhyTypescript;
diff --git a/src/plays/why-typescript/data.json b/src/plays/why-typescript/data.json
new file mode 100644
index 0000000000..06dd6c513a
--- /dev/null
+++ b/src/plays/why-typescript/data.json
@@ -0,0 +1,31 @@
+[{
+ "title": "General",
+ "details": [
+ "A powerful type system that includes generics.",
+ "TypeScript is nothing but JavaScript with some additional features.",
+ "It is Structural, rather than nominal way of processing"
+ ]
+},{
+ "title": "Power",
+ "details": [
+ "TypeScript provides highly productive development tools for JavaScript IDEs and practices, like static checking.",
+ "TypeScript makes code easier to read and understand.",
+ "TypeScript gives us all the benefits of ES6 (ECMAScript 6), plus more productivity."
+
+ ]
+},{
+ "title": "Friendlyness",
+ "details": [
+ "TypeScript can help us to avoid painful bugs that developers commonly run into when writing JavaScript by type checking the code",
+ "Typescript is aligned with ECMAScript for compatibility.",
+ "TypeScript code can be compiled as per ES5 and ES6 standards to support the latest browser."
+
+ ]
+},{
+ "title": "Features",
+ "details": [
+ "TypeScript simplifies JavaScript code, making it easier to read and debug.",
+ "With TypeScript, we can make a huge improvement over plain JavaScript.",
+ "A feature rich language that supports static typing."
+ ]
+}]
\ No newline at end of file
diff --git a/src/plays/why-typescript/wizard/contract.tsx b/src/plays/why-typescript/wizard/contract.tsx
new file mode 100644
index 0000000000..b04fd4fd05
--- /dev/null
+++ b/src/plays/why-typescript/wizard/contract.tsx
@@ -0,0 +1,37 @@
+export interface IDataContract {}
+
+export class IPageData {
+ title: String;
+ details: Array;
+}
+
+export class PageData implements IDataContract, IPageData {
+ title: String;
+ details: Array;
+ constructor(data: IPageData) {
+ this.details = data.details;
+ this.title = data.title;
+ }
+}
+
+export interface IWizardData {
+ title: String;
+ pages: Array;
+}
+
+export class WizardData implements IDataContract, IWizardData {
+ title: String;
+ pages: Array = [];
+ constructor(title: String, pages: Array