http://www.typescriptlang.org/Tutorial