[TOC] ## amd (加载) [github 实例](https://github.com/Microsoft/TypeScriptSamples/blob/master/amd/greeter.ts) 关键需引入`require`代码,指定入口文件为 `data-main="app"` ``` <script data-main="app" src="http://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.1/require.min.js"></script> ``` ## symbol 创建独一无二的值 创建独一无二的值,在某些对值不重要的场景 如: ``` var race = { protoss: 'protoss', // 神族 terran: 'terran', // 人族 zerg: 'zerg' // 虫族 } function createRole(type){ if(type === race.protoss){创建神族角色} else if(type === race.terran){创建人族角色} else if(type === race.zerg){创建虫族角色} } ``` 可以改为 ``` var race = { protoss: Symbol(), terran: Symbol(), zerg: Symbol() } function dmeo(r){ if (r==race.protoss){console.log("is protoss");} else if(r==race.terran){console.log("is terran");} else if(r ===race.zerg){console.log("is zerg");} } ``` `Symbol`的参数只是个注释,无实际用途 如: ``` var race = { protoss: Symbol('protoss'), terran: Symbol('terran'), zerg: Symbol('zerg') } //or > var a1 = Symbol('a') var a2 = Symbol('a') a1 !== a2 // true ``` ## for ..in.. 与 for .. of ... `for..in`迭代的是对象的 键 的列表,而`for..of`则迭代对象的键对应的值 ## 声明 `*.d.ts` 相当于c中的`.h`文件,在调用第三方原生库时,可方便知道类型 如: a.d.ts ``` declare function demo (num:number):boolean declare let demo1:string ``` 在 a.ts 中输入 `demo1` 就会提示出这个函数的规范