Microsoft/TypeScript
View on GitHubError when destructuring deep nested object with literal initializers as fallback
Open
#54,237 opened on May 13, 2023
BugDomain: check: Type InferenceHelp Wanted
Repository metrics
- Stars
- (48,455 stars)
- PR merge metrics
- (Avg merge 6d 17h) (9 merged PRs in 30d)
Description
Bug Report
🔎 Search Terms
- destructuring
- nested
- literal initializer
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about https://github.com/microsoft/TypeScript/issues/26235
⏯ Playground Link
Playground link with relevant code
💻 Code
interface Props {
innerObject?: {
innerObject2?: {
name?: string;
email?: string;
}
};
}
// won't let name and email default to undefined
// Initializer provides no value for this binding element and the binding element has no default value.
export const nestedDestructure1 = (props: Props) => {
const {
innerObject: {
innerObject2: { name, email } = {}
} = {}
} = props;
console.log(name, email);
};
🙁 Actual behavior
Initializer provides no value for this binding element and the binding element has no default value.(2525)
🙂 Expected behavior
name and email default to undefined and has type string | undefined