टाइपप्रति कार्यों का एक हैश तालिका को परिभाषित करना

वोट
8

मैं पहले से संकलित हैंडल स्क्रिप्ट के साथ उपयोग के लिए Handlebars के लिए एक परिभाषा फ़ाइल बनाने के लिए, कोशिश कर रहा हूँ। हैंडल कार्यों की एक स्ट्रिंग अनुक्रमित हैश तालिका में पहले से संकलित स्क्रिप्ट डाल देंगे, लेकिन मैं यह पता लगाने या यह कैसे परिभाषित किया जाएगा नहीं मिल सकता है।

एक काल्पनिक परिभाषा होगा:

declare module Handlebars {
    export var templates: { (model:any) => string; }[index: string];
}

लेकिन यह है कि एक वैध परिभाषा नहीं है। परिभाषा इस तरह एक कॉल के लिए काम करना चाहिए:

var myHtml = Handlebars.templates[person-template]({FNmae: Eric});

इस तरह एक परिभाषा है करीब :

export var templates: { (model:any) => string; }[];

लेकिन यह एक संख्यात्मक इंडेक्स के साथ एक सरणी है, और यह एक ही बात नहीं है, और वी.एस. Intellisense सिर्फ फैसला करता है कि सरणी में कार्य हैं किसी भी

11/10/2012 को 19:52
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
12

क्या आप उपयोग करना चाहते एक सूचकांक हस्ताक्षर के साथ एक वस्तु प्रकार है (कल्पना खंड 3.5.3 देखते हैं, विशेष रूप से 3.5.3.3)।

declare module Handlebars {
    export var templates: {
        [s: string]: (model: any) => string;
    }
}
11/10/2012 को 19:57
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more