2013-02-02 37 views
6

मैं सोच रहा था कि टाइपस्क्रिप्ट में टाइप किए गए फ़ंक्शन सरणी को कैसे घोषित किया जा सकता है।फ़ंक्शन का टाइपस्क्रिप्ट सरणी

उदाहरण के लिए, मैं एक क्षेत्र है जो एक समारोह कोई तर्क हैं और शून्य रिटर्न कि पकड़ कर सकते हैं कहते हैं:

private func:() => void; 

अब, कहते हैं कि मैं एक क्षेत्र है जो इस तरह के कार्यों की एक सरणी धारण कर सकते हैं चाहता था:

private funcs:() => void []; 

यह स्पष्ट रूप से मेरा इरादा करने का गलत तरीका है क्योंकि संकलक इसे एक ऐसा कार्य मानता है जो आवाजों की एक श्रृंखला देता है।

में के रूप में कोष्ठकों के साथ इनलाइन प्रोटोटाइप घोषणा को अलग करने की कोशिश कर रहा है:

private funcs2: (() => void ) []; 

एक संकलक त्रुटि होती है।

क्या किसी को यह पता है कि यह कैसे पूरा किया जा सकता है?

+0

की संभावित डुप्लिकेट: http://stackoverflow.com/q/12706161/24874 –

उत्तर

8

आप => आशुलिपि के बजाय पूर्ण प्रकार शाब्दिक वाक्य विन्यास का उपयोग करना होगा: यह है कि अगर बहुत अजीब लग रहा है

private funcs: {(): void; }[]; 

तुम भी एक अंतरफलक कर सकता है:

// (elsewhere at top-level) 
interface foo { 
    (): void; 
} 

class etc { 
    private funcs: foo[]; 
}