2015-05-15 11 views
6

lodash में _.map के साथ उपयोग करने के लिए शब्दकोशकोष कैसे घोषित करें?टाइपस्क्रिप्ट lodash: _.map के साथ उपयोग करने के लिए एक शब्दकोश घोषित कैसे करें?

यहां नमूना टाइपस्क्रिप्ट प्रोग्राम है।

<reference path="../scripts/typings/lodash/lodash.d.ts" /> 
interface IQuestionAndOptions { 
    text: string; 
    options: { [key: number]: string }; 
} 

function sample() { 
    var question: IQuestionAndOptions = { text: "Are you happy?", options: {} }; 
    question['1'] = "Yes"; 
    question['2'] = "No"; 

    var values = _.map(question.options, function (v: string, k: number) { 
    return { text: v, value: k }; }); 
} 

यह प्रश्न.ऑप्शन की घोषणा से खुश नहीं है और निम्न त्रुटि देता है।

प्रकार का तर्क '{[कुंजी: संख्या]: स्ट्रिंग; } सूची '_.map आदेश

उत्तर

0

समस्या lodash.d.ts के साथ थी और इसे हल करने के मुद्दे को अद्यतन किया गया।

nuget lodash.TypeScript.DefinitelyTyped संस्करण = "0.3.8"

का उपयोग करता

map<T, TResult>(
    collection: List<T>, 
    pluckValue: string): TResult[]; 

परिभाषा और काम करता है।

0

map विधि DefinitelyTyped में निम्नलिखित के रूप में परिभाषित किया गया है पर' नहीं प्रकार के पैरामीटर के लिए आबंटित है ':

map<T, TResult>(
     collection: Array<T>, 
     callback: ListIterator<T, TResult>, 
     thisArg?: any): TResult[]; 

यह एक श्रृंखला होना चाहिए collection तर्क की आवश्यकता है, जो { [key: number]: string } से अधिक विशिष्ट है। आपको options फ़ील्ड को काम करने के लिए एक सरणी के रूप में घोषित करना होगा।

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