TypeScript is an open source programming language created in 2012 by Anders Hejlsberg.
#14on PLDB | 12Years Old | 3mRepos |
git clone https://github.com/microsoft/TypeScript
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...
console.log("Hello, world!");
console.log("Hello World");
// Hello world in TypeScript
alert('Hello world!');
console.log("Hello, World!");
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
}
}
Feature | Supported | Example | Token |
---|---|---|---|
Standard Library | ✓ | console.log("Hello, World!"); | |
Type Aliases | ✓ | type Second = number; | |
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 |
|
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
/// |
|
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";
/// |
|
Type Casting | ✓ |
|
|
Classes | ✓ | class Person {} | |
Booleans | ✓ | const result = true | |
Generics | ✓ |
function identity |
|
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 |