2015-03-01 10 views
6

मुझे शायद कुछ मूर्खतापूर्ण याद आ रही है। मैंने सोचा था कि टपल प्रकार [string, number] मोटे तौर पर सरणी के- संघ प्रकार (string | number)[] के बराबर था, और निम्न इसलिए कानूनी था कि:टुपल प्रकार बनाम सरणी-यूनियन-प्रकार

function lengths (xs: string[]): [string, number][] { 
    return xs.map((x: string) => [x, x.length]) 
} 
हालांकि 1.4 tsc

शिकायत:

Config.ts(127,11): error TS2322: Type '(string | number)[][]' is not assignable to type '[string, number][]'. 
    Type '(string | number)[]' is not assignable to type '[string, number]'. 
    Property '0' is missing in type '(string | number)[]'. 

मैं क्या कर रहा हूँ गलत?

उत्तर

5

यह उत्तर सौजन्य डैनियल रोसेनवास्सर। आप अपने लैम्ब्डा को रिटर्न टाइप देकर जो व्यवहार चाहते हैं उसे प्राप्त कर सकते हैं।

function lengths(xs: string[]): [string, number][] { 
    return xs.map((x): [string, number] => [x, x.length]); 
} 

अधिक जानकारी here

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