Microsoft/TypeScript
NoInfer not working on callback parameter destructuring
开放
#60,544 创建于 2024年11月20日
Domain: check: Type InferenceHelp WantedPossible Improvement
仓库指标
- 星标
- (108,860 个星标)
- PR 合并指标
- (PR 指标待抓取)
描述
🔎 Search Terms
NoInfer parameter callback destructuring
🕗 Version & Regression Information
Latest to date.
⏯ Playground Link
💻 Code
class Foo<T, R> {
constructor(readonly cb: (t: T, _: NoInfer<{ x: number; other: NoInfer<R> }>) => R) {}
}
const _1 = new Foo((name: string, { x }) => ({ name, x })); // Foo<string, unknown>
// should be Foo<string, { name: string; x: number }>
const _2 = new Foo((name: string) => ({ name })); // works: Foo<string, { name: string }>
🙁 Actual behavior
infers unknown.
🙂 Expected behavior
Should ignore the parameter tagged with NoInfer and infer correctly.
Additional information about the issue
Is this intended behavior? feels like a bug to me.
If the callback parameter is destructured partially it infers unknown, but it works if the parameter is omitted.
I tried NoInfer at various locations.