Top 1,000 Features Creators Events Podcasts Extensions Interviews Blog Explorer CSV

TypeScript

< >

TypeScript is an open source programming language created in 2012 by Anders Hejlsberg.

#14on PLDB 12Years Old 3mRepos
Download source code:
git clone https://github.com/microsoft/TypeScript
Homepage · Leet Sheet · REPL · Try It Online · Download · Source Code · Blog · Wikipedia · Subreddit · Twitter · Release Notes · Docs

TypeScript is a free and open-source programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript, and adds optional static typing to the language. Anders Hejlsberg, lead architect of C# and creator of Delphi and Turbo Pascal, has worked on the development of TypeScript. Read more on Wikipedia...


Example from Riju:
console.log("Hello, world!");
Example from hello-world:
console.log("Hello World");
// Hello world in TypeScript alert('Hello world!');
Example from Linguist:
console.log("Hello, World!");
Example from Wikipedia:
class Person { private name: string; private age: number; private salary: number; constructor(name: string, age: number, salary: number) { this.name = name; this.age = age; this.salary = salary; } toString(): string { return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4 } }

Language features

Feature Supported Example Token
Standard Library
console.log("Hello, World!");
hasGradualTypes
MultiLine Comments
/* A comment
*/
/* */
Comments
// A comment
Algebraic Data Type
declare type numOrString = string | number
Line Comments
// A comment
//
Union Types
declare type numOrString = string | number
Single-Type Arrays
const scores: int[]
Type Inference
Strings
"hello world"
"
Type Parameters
function identity(arg: T): T {
   return arg;
}
Static Typing
Inheritance
class B {}
class A extends B {}
Print() Debugging
console.log("Hi")
console.log
Namespaces
// Typescript even supports splitting namespaces across multiple files:
// Validation.ts
namespace Validation {
    export interface StringValidator {
        isAcceptable(s: string): boolean;
    }
}
// LettersOnlyValidator.ts
/// 
namespace Validation {
    const lettersRegexp = /^[A-Za-z]+$/;
    export class LettersOnlyValidator implements StringValidator {
        isAcceptable(s: string) {
            return lettersRegexp.test(s);
        }
    }
}
Mixins
// https://www.typescriptlang.org/docs/handbook/mixins.html
class SmartObject implements Disposable, Activatable {
}
// Note: still need to do some runtime ops to make that work.
Interfaces
// https://www.typescriptlang.org/docs/handbook/interfaces.html
interface SquareConfig {
   color?: string;
   width?: number;
}
File Imports
import { ZipCodeValidator } from "./ZipCodeValidator";
/// 
/// 
import moo = module('moo');
/// 
Type Casting
something;
Classes
class Person {}
Booleans
const result = true
Generics
function identity(arg: T): T {
   return arg;
}
Abstract Types
abstract class Animal {}
class Dog extends Animal
Access Modifiers
class Person {
  private _age = 2
  public get age() {
    return _age
  }
  protected year = 1990
}
Static Methods
class Person {
  static sayHi() {
    console.log("Hello world")
  }
}
Enums
enum Direction {
 Up,
 Down
}
Case Insensitive Identifiers X
Semantic Indentation X
Operator Overloading X

View source

- Build the next great programming language · About · Resources · Acknowledgements · Part of the World Wide Scroll