2012-10-22 20 views
6

का उप प्रकार नहीं है, मैं टाइपस्क्रिप्ट और बैकबोनजेएस का उपयोग कर परीक्षण अनुप्रयोग पर काम कर रहा हूं। यह मुख्य रूप से एक कर्मचारी निर्देशिका है। संग्रह को परिभाषित करने का प्रयास करते समय मुझे निम्न त्रुटि मिलती है।टाइपस्क्रिप्ट ओवरराइड सदस्य मूल सदस्य

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

यहां मेरा मॉडल और संग्रह परिभाषा है।

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) {} 
} 

मैं टाइपस्क्रिप्ट के साथ बैकबोन इंटरफ़ेस करने के लिए कुछ परिभाषाओं का भी उपयोग कर रहा हूं और यहां वह फ़ाइल है जिसका मैं उपयोग कर रहा हूं।

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?); 
} 

उत्तर

3

'यूआरएल' फ़ील्ड को विधि के रूप में घोषित किया गया है, लेकिन यह एक विधि या संपत्ति हो सकती है।

url; 

या करने के लिए

url(); 

से यह बदलें परिभाषाओं (है कि बस मैं अद्यतन) यहां से डाउनलोड करें: https://github.com/borisyankov/DefinitelyTyped/blob/master/Definitions/backbone-0.9.d.ts

+1

मैं भी इस JQuery परिभाषा जो गायब था कहा: एचटीएमएल (एचटीएमएल एलिमेंट: एचटीएमलेमेंट): JQuery; – Flyers

संबंधित मुद्दे