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!"); |
|
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 |