关于 TypeScript 的常见问题。Frequently asked questions about TypeScript.
目录 Contents
- TypeScript 是什么?What is TypeScript?
 - TypeScript 为何而出现?
 - TypeScript 能做什么?What can TypeScript do?
 - TypeScript 的优势有哪些?What are the advantages of TypeScript?
 - TypeScript 的生态如何?What is the ecology of TypeScript?
 - 使用 TypeScript 开发的大型的、成功的项目有哪些?What are the large and successful projects developed by TypeScript?
 - 学习、使用 TypeScript 有什么前提要求?What are the prerequisites for learning and using TypeScript?
 - 如何正确地、高效地学习 TypeScript?How to learn TypeScript properly and efficiently?
 - TypeScript 的开发工具有哪些?What are the TypeScript development tools?
 - FAQ 主题 FAQ Topics
- 类型及类型系统 主题 Type and Type System Topics
 - 函数 主题 Function Topics
 - 类 主题 Class Topics
 - 接口 主题 Interface Topics
 - 枚举 主题 Enum Topics
 - 继承与扩展 主题 Inheritance and Extension Topics
 - 泛型 主题 Generic Topics
 - 修饰符 主题 Modifier Topics
 - 类型保护 主题 Type Guards Topics
 - 类型声明 主题 Type Declaration Topics
 - 模块化 主题 Module Topics
 - 工程化 主题 Project Organization Topics
 - 编译选项 主题 Compilation Topics
 - 装饰器 主题 Decorator Topics
 
 
 TypeScript 是由 Microsoft 出品的开源、MIT 授权、用于开发大型 JavaScript 应用程序的新一代编程语言。它是 JavaScript 的一个类型化超集(typed superset),被编译为纯净的 JavaScript,由微软的 C# 之父安德斯 · 海尔斯伯格(Anders Hejlsberg )主导开发并持续迭代发展。
 TypeScript 的官方网站是 https://www.typescriptlang.org,开源项目地址是 https://github.com/Microsoft/TypeScript。
	TypeScript 中有抽象类,通过关键字 abstract 来声明抽象类。例如:
abstract class Animal {
  public abstract shout():void;
}
class Cat extends Animal {
  public shout():void {
    console.log(`Meow ~ Meow ~~`);
  }
} TypeScript 中支持内部类,通过对静态字段赋值一个类来实现。例如
class Foo {
  public foo():void {
    const bar = new Foo.Bar();
    bar.bar(); // The console outputs the message 'TypeScript is great!'.
  }
  
  private static Bar = class Bar {
    public bar():void {
      console.log(`TypeScript is great!`);
    }
  };
}