TypeScript:从函数调用中解构对象时出现的“ Any”

时间:2019-06-24 09:06:39

标签: javascript typescript

当我从函数调用中解构时,我有一个奇怪的行为-我得到的变量变成any。但是,如果我不进行销毁,它们将具有正确的类型。一件事是,它取决于参数的数量。 Playground

const contexts = { a: {c: 1}, b: 2 }

type AppContexts = typeof contexts;

export function useApp<
  C extends Array<keyof AppContexts>,
  ResultContexts extends Pick<AppContexts, C extends (infer K)[] ? K : never>
>(...list: C): ResultContexts {
    return null as any;
}

const one = useApp('a', 'b');

one.a.c // good
const { b } = one; // good


// const { a } = useApp('a'); 
// a // a is any

// const { a } = useApp('a', 'b'); 
// a // a is number

0 个答案:

没有答案