..
  
  
  
  
    
 
      
    typescript
- node
 - yarn, brew install yarn
 - typescript, yard add -g typescript
 - ts-node, yard add -g ts-node
 
brew install node, yarn
yarn add -g typescript ts-node
# 获取安装的二进制地址
yarn bin
可以通过 tsc 去理解当前的 ts 的语法糖
tsc class.ts --lib es2016,dom --pretty
graph LR;
    ts-->tsc-->js;
graph TD;
    any-->内置类型;
    any-->用户定义类型;
内置类型
- string
 - number, 包括 整数 和 浮点数
 - void
 - null, 值是 undefined 的对象
 - undefined 初始化后的默认值
 
定义变量
| var a:string = “a” | 设置为 string | 
| var a = “a” | 和 上面 等价, a 的类型会被设置为 string (Inferred Typing) | 
| var a:string | 和 上面 等价, a 的类型会被设置为 string | 
| var a | a 的类型会被设置为 any, 值是 undefined | 
作用域
- global
 - class variable & class static variable
 - local (method)
 
Optional Parameters: function a(id:number, name: string, desc?:string) {}
Rest Parameters: function a(id:number, ...restParams:string[]) {}
var a = [10, "d"]
var x:string|number = a[0]
var y:string|number = a[1]
console.log("x is " + x)
console.log("y is " + y)
var [x, y] = a
let a:string|number;
a = 12
a = "d"
一般多个类型的时候, 会使用 typeof 来做判断
interface IPerson {
  name:string
  other:number|string
}
const person:IPerson = { name: "a", other: 1 }
graph TD;
    clazz-->Fields;
    clazz-->Constructors;
    clazz-->Functions;
typescipt 不支持多继承
- static; 静态, 类变量/方法 的关键词
 - instanceof typeof;
 - implement; class 可以实现某个接口
 
namespace A {
  export interface IPerson {}
  export class IClazz {}
}
module: external 和 internal