禅与计算机编程艺术
如果是自己定义的对象,想动态给对象增加key,value,obj.xx=xx,obj[xx]=xx,都会报错,一种优雅快速的方式是:
interface LooseObject { [key: string]: any } var obj: LooseObject = {};
这种方式还可以对对象做一些类型规则,比如在LooseObject里加必须的字段和其他字段必须接受的类型等。