export const omit = <T, U extends keyof T>(obj: T, keys: U[]): Exclude<T, U> =>
  Object.keys(obj).reduce(  
    (acc: any, curr: any) => (keys.includes(curr) ? acc : { ...acc, [curr]: obj[curr] }),
    {}
  );

TS7053: Element implicitly has an 'any' type because expression of type 'any' can't be used to index type 'unknown'. बताते हुए एक त्रुटि संदेश प्राप्त करना

और कोई त्रुटि संदेश और सही ढंग से टाइप किया गया कार्य नहीं करना चाहेंगे।

0
stephano 1 अप्रैल 2020, 16:04

1 उत्तर

सबसे बढ़िया उत्तर

मुझे ऐसा लगता है कि आप किसी वस्तु को वापस करने का प्रयास कर रहे हैं, इसलिए मेरा मानना ​​है कि आप Omit<T, U> वापस करना चाहते हैं न कि Exclude<T, U> :

आप अंतर यहां देख सकते हैं

यहां बताया गया है कि आप अपनी त्रुटियों से कैसे बच सकते हैं:

export const omit = <T, U extends keyof T>(obj: T, keys: U[]): Omit<T, U> =>
  (Object.keys(obj) as U[]).reduce(
    (acc, curr) => (keys.includes(curr) ? acc : { ...acc, [curr]: obj[curr] }),
    {} as Omit<T, U>
  );
2
JeromeBu 1 अप्रैल 2020, 16:04