2012-10-22 29 views
6

alt tipinin bir alt türü değil, TypeScript ve BackboneJS kullanarak bir sınama uygulaması üzerinde çalışıyorum. Temelde bir çalışan dizini. Bir Koleksiyon tanımlamaya çalışırken aşağıdaki hatayı alıyorum.TypeScript geçersiz kılınmış üye, özgün üye

Type of overridden member 'url' is not subtype of original member defined by type 'Collection' 

Model ve Koleksiyon tanımlarım. Ben de burada typescript ile Omurga arabirim için bazı tanımları kullanarak ve kulüpler

class Employee extends Backbone.Model { 
    reports: EmployeeCollection; 

    constructor (options?) { 
     super(options); 
     this.reports = new EmployeeCollection(); 
     this.reports.url = '../api/employees/' + this.id + '/reports'; 
    } 
} 

class EmployeeCollection extends Backbone.Collection { 
    url: string = "../api/employees"; 
    model = Employee; 
    findByName(key) {} 
} 

i kullanıyorum dosyasıdır.

export class Model { 

    static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality 

    constructor (attributes?: any, options?: any); 

    get(attributeName: string): any; 
    set(attributeName: string, value: any): void; 
    set(obj: any): void; 

    escape(attribute); 
    has(attribute); 
    unset(attribute, options?); 
    clear(options?); 

    id: any; 
    idAttribute: any; 
    cid; 
    attributes; 
    changed; 

    bind(ev: string, f: Function, ctx?: any): void; /// ???? 

    // defaults; defaults(); 
    toJSON(): string; 
    fetch(options?); 
    save(attributes? , options?): void; 
    destroy(options?): void; 
    validate(attributes); 
    isValid(); 
    url(); 
    urlRoot(); 
    parse(response); 
    clone(); 
    isNew(); 
    change(); 
    hasChanged(attribute?); 
    changedAttributes(attributes?); 
    previous(attribute); 
    previousAttributes(); 
} 

export class Collection { 

    static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality 

    model; 

    constructor (models? , options?); 

    models; 
    toJSON(): any; 

    ///// start UNDERSCORE 28: 
    bind(ev: string, f: Function, ctx?: any): void; 
    collection: Model; 
    create(attrs, opts?): Collection; 
    each(f: (elem: any) => void): void; 
    last(): any; 
    last(n: number): any[]; 
    filter(f: (elem: any) => any): Collection; 
    without(...values: any[]): Collection; 

    // Underscore bindings 

    each(object: any, iterator: (value, key, list?) => void , context?: any): any[]; 
    forEach(object: any, iterator: (value, key, list?) => void , context?: any): any[]; 
    map(object: any, iterator: (value, key, list?) => void , context?: any): any[]; 
    reduce(list: any[], iterator: any, memo: (memo: any, element: any, index: number, list: any[]) => any, context?: any): any[]; 
    reduceRight(list: any[], iterator: (memo: any, element: any, index: number, list: any[]) => any, memo: any, context?: any): any[]; 
    find(list: any[], iterator: any, context?: any): any; // ??? 
    detect(list: any[], iterator: any, context?: any): any; // ??? 
    filter(list: any[], iterator: any, context?: any): any[]; 
    select(list: any[], iterator: any, context?: any): any[]; 
    reject(list: any[], iterator: any, context?: any): any[]; 
    every(list: any[], iterator: any, context?: any): bool; 
    all(list: any[], iterator: any, context?: any): bool; 
    any(list: any[], iterator?: any, context?: any): bool; 
    some(list: any[], iterator?: any, context?: any): bool; 
    contains(list: any, value: any): bool; 
    contains(list: any[], value: any): bool; 
    include(list: any, value: any): bool; 
    include(list: any[], value: any): bool; 
    invoke(list: any[], methodName: string, arguments: any[]): any; 
    invoke(object: any, methodName: string, ...arguments: any[]): any; 
    max(list: any[], iterator?: any, context?: any): any; 
    min(list: any[], iterator?: any, context?: any): any; 
    sortBy(list: any[], iterator?: any, context?: any): any; 
    sortedIndex(list: any[], valueL: any, iterator?: any): number; 
    toArray(list: any): any[]; 
    size(list: any): number; 
    first(array: any[], n?: number): any; 
    initial(array: any[], n?: number): any[]; 
    rest(array: any[], n?: number): any[]; 
    last(array: any[], n?: number): any; 
    without(array: any[], ...values: any[]): any[]; 
    indexOf(array: any[], value: any, isSorted?: bool): number; 
    shuffle(list: any[]): any[]; 
    lastIndexOf(array: any[], value: any, fromIndex?: number): number; 
    isEmpty(object: any): bool; 
    groupBy(list: any[], iterator: any): any; 

    add(models, options?); 
    remove(models, options?); 
    get(id); 
    getByCid(cid); 
    at(index: number); 
    push(model, options?); 
    pop(options?); 
    unshift(model, options?); 
    shift(options?); 
    length: number; 
    //comparator; 
    sort(options?); 
    pluck(attribute); 
    where(attributes); 
    url(); 
    parse(response); 
    fetch(options?: any): void; 
    reset(models, options?); 
    create(attributes, options?); 
} 

export class Router { 

    static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality 

    routes; 
    constructor (options?); 
    route(route, name, callback?); 
    navigate(fragment, options?); 
} 

cevap