Bug in TypeScript array initialization (proto reference Object)

Similarly to tutorial-darkslash, I have a class of NodePool.ts:

@ccclass
export class NodePool {

	@property(cc.Prefab)
	prefab : cc.Prefab;

	@property(20)
	size : number = 20;

	initList : any[] = [];
	list : any[] = [];


	init()
	{
	} .....

I have a PoolManager.ts:

@ccclass
export class PoolManager extends cc.Component {

	@property({type : NodePool})
	nodePools = [];

	init()
	{
		_.each(this.nodePools, (pool : NodePool, index) => {
				pool.init();
		});
	}

	requestPington(type)
	{
		return this.nodePools[type].requestObject();
	}

	returnPington(type, obj)
	{
		this.nodePools[type].returnObject(obj);
	}
}

and Game.js:

@ccclass
export class Game extends cc.Component {

	@property(PoolManager)
	poolManager : PoolManager[] = [];
	

	@property(cc.Node)
	touchHandler : TouchHandler = null;
	
	onLoad()
	{
		_.each(this.poolManager, manager => {
			manager.init();
		});

Next I create a node Game in CocosCreator NodeTree and Nodes for PoolManager (2, with two sets).
Now when component is initialized inside Game this.poolManager is of type PoolManager, and everything is fine. However, when I execute manager.init(). The nodePools contain Array: [{prefab:…, size:20},…] each object of type Object, not NodePool and thus they have not init function on them. This fails at runtime on this line:

	_.each(this.nodePools, (pool : NodePool, index) => {
			pool.init(); <- Fail
	});