add TypeScript. closed #15