2015-01-28 7 views
0

Я пытаюсь создать богатую модель данных для приложения AngularJS, и я бы хотел, чтобы моя модель наследовала от Array<BaseModel>. Я еще не нашел способ сделать это (с уверенностью).TypeScript: inherit from Array

В псевдокоде это будет что-то вроде:

// NOT REAL CODE. DOES NOT WORK 
class BaseModel {} 
class Person extends BaseModel {} 
class People extends Array<Person> { 
    constructor(private promise:Promise) { } 
    $unwrap(promise) { 
     promise.then((response) => { 
      response.data.map((person) => { 
       this.push(new Person(person)); 
      }); 
     }); 
    } 
    static $load() { 
     /* do some ajaxy thing and unwrap the promise right onto the 
      the new instance of this rich model */ 

     return new People(promise); 
    } 
} 

Поэтому я хотел бы что-то вроде этого является то, что теперь я могу связать эту модель прямо на мой взгляд, и получать обновления на лету.

Любые мысли о продолжении от массива?

+0

У вас есть конкретный вопрос? У вас возникла проблема с вашим дизайном? – JLRishe

+0

Да, вопрос: «Как наследовать от Array в TypeScript». Дизайн работает достаточно хорошо: [link] (https://www.youtube.com/watch?v=lHbWRFpbma4). Я выпустил несколько проектов, используя эту технику в JS. Я хочу перейти к TypeScript из JS и хотел бы взять этот шаблон со мной. –

+0

Хорошо, так вы что-то пробовали? Похоже, вы изложили идею выше. Как прошло? http://stackoverflow.com/help/how-to-ask – JLRishe

ответ

0

На данный момент это время невозможно наследовать от Array в TypeScript. Лучше всего развернуть в поле общего массива и использовать это поле для привязки к пользовательскому интерфейсу. Он решает одну и ту же функциональность и устраняет необходимость наследования из массива.