Microsoft/TypeScript

Error when destructuring deep nested object with literal initializers as fallback

Open

#54,237 建立於 2023年5月13日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)TypeScript (6,726 fork)batch import
BugDomain: check: Type InferenceHelp Wanted

倉庫指標

Star
 (48,455 star)
PR 合併指標
 (平均合併 6天 17小時) (30 天內合併 9 個 PR)

描述

Bug Report

🔎 Search Terms

  • destructuring
  • nested
  • literal initializer

🕗 Version & Regression Information

⏯ 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

貢獻者指南