{"componentChunkName":"component---node-modules-narative-gatsby-theme-novela-src-templates-article-template-tsx","path":"/2020-05-26-personal-configuration-of-some-dotfile-files","result":{"pageContext":{"article":{"id":"e903c32f-5efc-5146-9483-5b8258836127","slug":"/2020-05-26-personal-configuration-of-some-dotfile-files","secret":false,"title":"关于我个人的一些 `dotfile` 文件的配置","author":"Bryan Lee","date":"May 26th, 2020","dateForSEO":"2020-05-26T00:00:00.000Z","timeToRead":1,"excerpt":"我个人喜欢将配置项尽可能地归类放置，完全是出于个人喜好，再譬如一些配置项出于个人习惯就没有按照上面的规则进行放置，比如 `[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh` 这行代码，所以可以作为参考，但并不代表说我的配置风格就是最好的、完美的。","canonical_url":null,"subscription":true,"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"关于我个人的一些 `dotfile` 文件的配置\",\n  \"slug\": \"2020-05-26-personal-configuration-of-some-dotfile-files\",\n  \"author\": \"Bryan Lee\",\n  \"date\": \"2020-05-26T00:00:00.000Z\",\n  \"hero\": \"./images/hero.jpeg\",\n  \"excerpt\": \"我个人喜欢将配置项尽可能地归类放置，完全是出于个人喜好，再譬如一些配置项出于个人习惯就没有按照上面的规则进行放置，比如 `[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh` 这行代码，所以可以作为参考，但并不代表说我的配置风格就是最好的、完美的。\",\n  \"tags\": [\"Oh My ZSH\", \"Powerlevel10k\", \"Vim\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"details\", null, mdx(\"summary\", null, mdx(\"strong\", null, \"\\u6587\\u4EF6\\u6C47\\u603B\")), mdx(\"p\", null, \"  \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://gist.githubusercontent.com/liby/772fe930e54f30ae82821d8be133facb/raw/.vimrc\",\n    \"title\": \"我的 Vim 配置\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \".vimrc\")), mdx(\"hr\", null), mdx(\"p\", null, \"  \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://gist.githubusercontent.com/liby/772fe930e54f30ae82821d8be133facb/raw/.zshrc\",\n    \"title\": \"我的 Oh My ZSH 配置\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \".zshrc\"))), mdx(\"h2\", {\n    \"id\": \"有几个需要注意的地方\"\n  }, \"\\u6709\\u51E0\\u4E2A\\u9700\\u8981\\u6CE8\\u610F\\u7684\\u5730\\u65B9\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u5982\\u679C\\u60F3\\u8981\\u542F\\u7528 \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/romkatv/powerlevel10k\",\n    \"title\": \"Powerlevel10k 的 repository\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"Powerlevel10k\"), \" \\u7684 \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/romkatv/powerlevel10k#how-do-i-enable-instant-prompt\",\n    \"title\": \"有关 instant prompt 的文档说明\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"instant prompt\"), \" \\u529F\\u80FD\\uFF0C\\u90A3\\u4E48\\u5FC5\\u987B\\u5C06\\u4E0B\\u5217\\u914D\\u7F6E\\u9879\\u653E\\u7F6E\\u5728 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~/.zshrc\"), \" \\u6587\\u4EF6\\u9876\\u90E8\\u3002\"), mdx(\"pre\", {\n    parentName: \"li\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-sh\"\n  }), \"# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.\\n# Initialization code that may require console input (password prompts, [y/n]\\n# confirmations, etc.) must go above this block; everything else may go below.\\nif [[ -r \\\"${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\\\" ]]; then\\n  source \\\"${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh\\\"\\nfi\\n\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u9700\\u8981 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"export\"), \" \\u76F8\\u5173\\u7684\\u8BBE\\u7F6E\\u5C3D\\u91CF\\u653E\\u5728\\u5176\\u4ED6\\u914D\\u7F6E\\u9879\\u4E4B\\u524D\\uFF0C\\u907F\\u514D\\u51FA\\u73B0\\u540E\\u7EED\\u914D\\u7F6E\\u9879\\u9700\\u8981\\u7528\\u5230\\u5BFC\\u51FA\\u7684\\u53D8\\u91CF\\u5374\\u53D1\\u73B0\\u627E\\u4E0D\\u5230\\u7684\\u60C5\\u51B5\\u3002\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"source\"), \" \\u6709\\u5173\\u7684\\u914D\\u7F6E\\u9879\\u5728\\u6211\\u770B\\u6765\\u57FA\\u672C\\u662F\\u5F15\\u5165\\u4E00\\u4E9B\\u5176\\u4ED6\\u6587\\u4EF6\\u4E2D\\uFF08\\u6BD4\\u5982 \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/autojump\",\n    \"title\": \"autojump 的 repository\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"autojump\"), \" \\u8FD9\\u4E2A\\u63D2\\u4EF6\\u7684\\u52A0\\u8F7D\\uFF09\\u7684\\u914D\\u7F6E\\uFF0C\\u6240\\u4EE5\\u4E60\\u60EF\\u5C06\\u5B83\\u653E\\u5728 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"plugins\"), \" \\u914D\\u7F6E\\u9879\\u7684\\u540E\\u9762\\u3002\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"alias\"), \" \\u76F8\\u5173\\u7684\\u914D\\u7F6E\\u6700\\u597D\\u653E\\u5230\\u6700\\u540E\\uFF0C\\u6BD4\\u5982 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"alias ll='ls -alFh'\"), \" \\u5982\\u679C\\u653E\\u5728 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"source $ZSH/oh-my-zsh.sh\"), \" \\u4E4B\\u524D\\uFF0C\\u90A3\\u4E48\\u5C31\\u4F1A\\u88AB\\u8986\\u76D6\\u3002\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u6211\\u4E2A\\u4EBA\\u559C\\u6B22\\u5C06\\u914D\\u7F6E\\u9879\\u5C3D\\u53EF\\u80FD\\u5730\\u5F52\\u7C7B\\u653E\\u7F6E\\uFF0C\\u5B8C\\u5168\\u662F\\u51FA\\u4E8E\\u4E2A\\u4EBA\\u559C\\u597D\\uFF0C\\u518D\\u8B6C\\u5982\\u4E00\\u4E9B\\u914D\\u7F6E\\u9879\\u51FA\\u4E8E\\u4E2A\\u4EBA\\u4E60\\u60EF\\u5C31\\u6CA1\\u6709\\u6309\\u7167\\u4E0A\\u9762\\u7684\\u89C4\\u5219\\u8FDB\\u884C\\u653E\\u7F6E\\uFF0C\\u6BD4\\u5982 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh\"), \" \\u8FD9\\u884C\\u4EE3\\u7801\\uFF0C\\u6240\\u4EE5\\u53EF\\u4EE5\\u4F5C\\u4E3A\\u53C2\\u8003\\uFF0C\\u4F46\\u5E76\\u4E0D\\u4EE3\\u8868\\u8BF4\\u6211\\u7684\\u914D\\u7F6E\\u98CE\\u683C\\u5C31\\u662F\\u6700\\u597D\\u7684\\u3001\\u5B8C\\u7F8E\\u7684\\u3002\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Vim \\u7684\\u914D\\u7F6E\\u76F8\\u8F83\\u6765\\u8BF4\\u6BD4\\u8F83\\u7B80\\u5355\\uFF0C\\u6211\\u8BA4\\u4E3A\\u9664\\u4E86\\u4EE5\\u4E0B\\u914D\\u7F6E\\u5916\\u5176\\u4ED6\\u914D\\u7F6E\\u9879\\u90FD\\u4E0D\\u662F\\u5FC5\\u9700\\u7684\\uFF0C\\u6839\\u636E\\u81EA\\u5DF1\\u9700\\u6C42\\u548C\\u559C\\u597D\\u589E\\u5220\\u5C31\\u53EF\\u4EE5\\u4E86\\uFF1A\"), mdx(\"pre\", {\n    parentName: \"li\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-vim\"\n  }), \"\\\" \\u663E\\u793A\\u884C\\u53F7\\nset number\\n\\\" \\u8BED\\u6CD5\\u9AD8\\u4EAE\\u663E\\u793A\\nsyntax on\\n\\\" \\u542F\\u7528\\u81EA\\u52A8\\u5BF9\\u9F50\\u529F\\u80FD\\uFF0C\\u628A\\u4E0A\\u4E00\\u884C\\u7684\\u5BF9\\u9F50\\u683C\\u5F0F\\u5E94\\u7528\\u5230\\u4E0B\\u4E00\\u884C\\nset autoindent\\n\\\" \\u8BBE\\u7F6E\\u663E\\u793A\\u5236\\u8868\\u7B26\\u7684\\u7A7A\\u683C\\u5B57\\u7B26\\u4E2A\\u6570,\\u6539\\u8FDB tab \\u7F29\\u8FDB\\u503C\\uFF0C\\u9ED8\\u8BA4\\u4E3A 8\\uFF0C\\u73B0\\u6539\\u4E3A 2\\nset tabstop=2\\n\\\" \\u663E\\u793A\\u5339\\u914D\\u7684\\u62EC\\u53F7\\nset showmatch\\n\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u4E0B\\u9762\\u7684\\u914D\\u7F6E\\u662F\\u4E3A\\u4E86\\u5728 \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/gnachman/iTerm2\",\n    \"title\": \"iTerm2 的 repository\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"iTerm2\"), \" \\u4E2D\\u8BA9\\u5149\\u6807\\u5728 insert \\u6A21\\u5F0F\\u548C normal \\u6A21\\u5F0F\\u4E0B\\u663E\\u793A\\u4E0D\\u540C\\u7684\\u6837\\u5F0F\\uFF0C\\u53EF\\u4EE5\\u6839\\u636E\\u4E2A\\u4EBA\\u9700\\u6C42\\u81EA\\u884C\\u9009\\u62E9\\u662F\\u5426\\u4FDD\\u7559\"), mdx(\"pre\", {\n    parentName: \"li\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-vim\"\n  }), \"\\\" Change cursor shape between insert and normal mode in iTerm2.app\\nif $TERM_PROGRAM =~ \\\"iTerm\\\"\\n    let &t_SI = \\\"\\\\<Esc>]50;CursorShape=1\\\\x7\\\" \\\" Vertical bar in insert mode\\n    let &t_EI = \\\"\\\\<Esc>]50;CursorShape=0\\\\x7\\\" \\\" Block in normal mode\\nendif\\n\")))));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAECAwQF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAGxc7ZcogH/xAAZEAADAQEBAAAAAAAAAAAAAAAAAQIREhP/2gAIAQEAAQUC9Jkdtm0Tbdc6kmf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEv/aAAgBAwEBPwGlP//EABYRAQEBAAAAAAAAAAAAAAAAAAAREv/aAAgBAgEBPwHKP//EABoQAQACAwEAAAAAAAAAAAAAAAABIQIRMTL/2gAIAQEABj8CrUPSslpdf//EABwQAAICAgMAAAAAAAAAAAAAAAABETEhQVFxof/aAAgBAQABPyGKkuK4LBUlyQXNdEKQUNpemQtHFH//2gAMAwEAAgADAAAAEAsf/8QAFxEBAAMAAAAAAAAAAAAAAAAAARARMf/aAAgBAwEBPxBq5D//xAAWEQEBAQAAAAAAAAAAAAAAAAABEBH/2gAIAQIBAT8QDk//xAAbEAEBAAMBAQEAAAAAAAAAAAABEQAhMWFBgf/aAAgBAQABPxAgEI0UPJgdlho/ce0uxHkiFDTfcF5gVJcKhJydT9z/2Q==","aspectRatio":1.5031847133757963,"src":"/static/07ddaf139bc712056f0374d91f5742de/58fe7/hero.jpg","srcSet":"/static/07ddaf139bc712056f0374d91f5742de/e0f30/hero.jpg 236w,\n/static/07ddaf139bc712056f0374d91f5742de/86afd/hero.jpg 472w,\n/static/07ddaf139bc712056f0374d91f5742de/58fe7/hero.jpg 944w,\n/static/07ddaf139bc712056f0374d91f5742de/02748/hero.jpg 1416w,\n/static/07ddaf139bc712056f0374d91f5742de/5c241/hero.jpg 1888w,\n/static/07ddaf139bc712056f0374d91f5742de/e3277/hero.jpg 2250w","srcWebp":"/static/07ddaf139bc712056f0374d91f5742de/99fbb/hero.webp","srcSetWebp":"/static/07ddaf139bc712056f0374d91f5742de/77392/hero.webp 236w,\n/static/07ddaf139bc712056f0374d91f5742de/1f177/hero.webp 472w,\n/static/07ddaf139bc712056f0374d91f5742de/99fbb/hero.webp 944w,\n/static/07ddaf139bc712056f0374d91f5742de/4a492/hero.webp 1416w,\n/static/07ddaf139bc712056f0374d91f5742de/b0b8f/hero.webp 1888w,\n/static/07ddaf139bc712056f0374d91f5742de/d168a/hero.webp 2250w","sizes":"(max-width: 944px) 100vw, 944px"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAECAwQF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAGxc7ZcogH/xAAZEAADAQEBAAAAAAAAAAAAAAAAAQIREhP/2gAIAQEAAQUC9Jkdtm0Tbdc6kmf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEv/aAAgBAwEBPwGlP//EABYRAQEBAAAAAAAAAAAAAAAAAAAREv/aAAgBAgEBPwHKP//EABoQAQACAwEAAAAAAAAAAAAAAAABIQIRMTL/2gAIAQEABj8CrUPSslpdf//EABwQAAICAgMAAAAAAAAAAAAAAAABETEhQVFxof/aAAgBAQABPyGKkuK4LBUlyQXNdEKQUNpemQtHFH//2gAMAwEAAgADAAAAEAsf/8QAFxEBAAMAAAAAAAAAAAAAAAAAARARMf/aAAgBAwEBPxBq5D//xAAWEQEBAQAAAAAAAAAAAAAAAAABEBH/2gAIAQIBAT8QDk//xAAbEAEBAAMBAQEAAAAAAAAAAAABEQAhMWFBgf/aAAgBAQABPxAgEI0UPJgdlho/ce0uxHkiFDTfcF5gVJcKhJydT9z/2Q==","aspectRatio":1.4954128440366972,"src":"/static/07ddaf139bc712056f0374d91f5742de/1dc0b/hero.jpg","srcSet":"/static/07ddaf139bc712056f0374d91f5742de/3a5ce/hero.jpg 163w,\n/static/07ddaf139bc712056f0374d91f5742de/05730/hero.jpg 327w,\n/static/07ddaf139bc712056f0374d91f5742de/1dc0b/hero.jpg 653w,\n/static/07ddaf139bc712056f0374d91f5742de/f72c7/hero.jpg 980w,\n/static/07ddaf139bc712056f0374d91f5742de/6e4a3/hero.jpg 1306w,\n/static/07ddaf139bc712056f0374d91f5742de/e3277/hero.jpg 2250w","srcWebp":"/static/07ddaf139bc712056f0374d91f5742de/0acdf/hero.webp","srcSetWebp":"/static/07ddaf139bc712056f0374d91f5742de/ac59e/hero.webp 163w,\n/static/07ddaf139bc712056f0374d91f5742de/7660b/hero.webp 327w,\n/static/07ddaf139bc712056f0374d91f5742de/0acdf/hero.webp 653w,\n/static/07ddaf139bc712056f0374d91f5742de/75470/hero.webp 980w,\n/static/07ddaf139bc712056f0374d91f5742de/68d47/hero.webp 1306w,\n/static/07ddaf139bc712056f0374d91f5742de/d168a/hero.webp 2250w","sizes":"(max-width: 653px) 100vw, 653px"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAECAwQF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAGxc7ZcogH/xAAZEAADAQEBAAAAAAAAAAAAAAAAAQIREhP/2gAIAQEAAQUC9Jkdtm0Tbdc6kmf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEv/aAAgBAwEBPwGlP//EABYRAQEBAAAAAAAAAAAAAAAAAAAREv/aAAgBAgEBPwHKP//EABoQAQACAwEAAAAAAAAAAAAAAAABIQIRMTL/2gAIAQEABj8CrUPSslpdf//EABwQAAICAgMAAAAAAAAAAAAAAAABETEhQVFxof/aAAgBAQABPyGKkuK4LBUlyQXNdEKQUNpemQtHFH//2gAMAwEAAgADAAAAEAsf/8QAFxEBAAMAAAAAAAAAAAAAAAAAARARMf/aAAgBAwEBPxBq5D//xAAWEQEBAQAAAAAAAAAAAAAAAAABEBH/2gAIAQIBAT8QDk//xAAbEAEBAAMBAQEAAAAAAAAAAAABEQAhMWFBgf/aAAgBAQABPxAgEI0UPJgdlho/ce0uxHkiFDTfcF5gVJcKhJydT9z/2Q==","aspectRatio":1.5,"src":"/static/07ddaf139bc712056f0374d91f5742de/eaa58/hero.jpg","srcSet":"/static/07ddaf139bc712056f0374d91f5742de/5a3ee/hero.jpg 114w,\n/static/07ddaf139bc712056f0374d91f5742de/41f8f/hero.jpg 229w,\n/static/07ddaf139bc712056f0374d91f5742de/eaa58/hero.jpg 457w,\n/static/07ddaf139bc712056f0374d91f5742de/c309b/hero.jpg 686w,\n/static/07ddaf139bc712056f0374d91f5742de/e3008/hero.jpg 914w,\n/static/07ddaf139bc712056f0374d91f5742de/e3277/hero.jpg 2250w","srcWebp":"/static/07ddaf139bc712056f0374d91f5742de/15384/hero.webp","srcSetWebp":"/static/07ddaf139bc712056f0374d91f5742de/31fce/hero.webp 114w,\n/static/07ddaf139bc712056f0374d91f5742de/e3e25/hero.webp 229w,\n/static/07ddaf139bc712056f0374d91f5742de/15384/hero.webp 457w,\n/static/07ddaf139bc712056f0374d91f5742de/0258d/hero.webp 686w,\n/static/07ddaf139bc712056f0374d91f5742de/64ea2/hero.webp 914w,\n/static/07ddaf139bc712056f0374d91f5742de/d168a/hero.webp 2250w","sizes":"(max-width: 457px) 100vw, 457px"},"seo":{"src":"/static/07ddaf139bc712056f0374d91f5742de/0ff54/hero.jpg"}}},"authors":[{"authorsPage":true,"bio":"Web Developer. Now prefer TypeScript and Rust, mainly working on UED.\n","id":"7d3dbfdc-58e9-5099-b0f3-ca98ddc04463","name":"Bryan Lee","featured":true,"social":[{"url":"https://github.com/liby"},{"url":"https://twitter.com/meetliby"}],"slug":"/authors/bryan-lee","avatar":{"small":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAMEBQL/xAAWAQEBAQAAAAAAAAAAAAAAAAACAwH/2gAMAwEAAhADEAAAAe5VadK7YMR0wPUBz//EABwQAAMBAAIDAAAAAAAAAAAAAAECAwAEEhEhMv/aAAgBAQABBQKXVcWnTBnnrwHYIGI40tRj5j9A+v/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABgRAAIDAAAAAAAAAAAAAAAAAAABEBFR/9oACAECAQE/AWi0bH//xAAfEAACAgIBBQAAAAAAAAAAAAAAAREhAhIQMkFRcYH/2gAIAQEABj8Czy26nRqx4ryTM3MCruXL+jPfH//EABsQAAMBAQEBAQAAAAAAAAAAAAABESExUUGB/9oACAEBAAE/IciyprpKg3+DnlXilF99PwgGhJan1sVAzTb6Y4f/2gAMAwEAAgADAAAAEF/4/wD/xAAXEQEBAQEAAAAAAAAAAAAAAAABABEx/9oACAEDAQE/EDMnscJv/8QAGBEBAAMBAAAAAAAAAAAAAAAAAQAQESH/2gAIAQIBAT8Q6LsMo0//xAAgEAEBAAIBAwUAAAAAAAAAAAABEQAhMRBRYYGhweHx/9oACAEBAAE/EApBPFBUr5uXjxBXbN86azXHxMCnKLRDzJzvNcUtyQHeIVKqFX0wZktfb8x4pRs7376J/9k=","aspectRatio":1,"src":"/static/112d7159f7c020bdec3bdf12fb558466/fa1ea/bryan-lee.jpg","srcSet":"/static/112d7159f7c020bdec3bdf12fb558466/afb2b/bryan-lee.jpg 13w,\n/static/112d7159f7c020bdec3bdf12fb558466/7c20e/bryan-lee.jpg 25w,\n/static/112d7159f7c020bdec3bdf12fb558466/fa1ea/bryan-lee.jpg 50w,\n/static/112d7159f7c020bdec3bdf12fb558466/03612/bryan-lee.jpg 75w,\n/static/112d7159f7c020bdec3bdf12fb558466/61cdf/bryan-lee.jpg 100w,\n/static/112d7159f7c020bdec3bdf12fb558466/f86e8/bryan-lee.jpg 460w","srcWebp":"/static/112d7159f7c020bdec3bdf12fb558466/e7b2c/bryan-lee.webp","srcSetWebp":"/static/112d7159f7c020bdec3bdf12fb558466/58718/bryan-lee.webp 13w,\n/static/112d7159f7c020bdec3bdf12fb558466/74aad/bryan-lee.webp 25w,\n/static/112d7159f7c020bdec3bdf12fb558466/e7b2c/bryan-lee.webp 50w,\n/static/112d7159f7c020bdec3bdf12fb558466/ed320/bryan-lee.webp 75w,\n/static/112d7159f7c020bdec3bdf12fb558466/66016/bryan-lee.webp 100w,\n/static/112d7159f7c020bdec3bdf12fb558466/d908f/bryan-lee.webp 460w","sizes":"(max-width: 50px) 100vw, 50px"},"medium":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAMEBQL/xAAWAQEBAQAAAAAAAAAAAAAAAAACAwH/2gAMAwEAAhADEAAAAe5VadK7YMR0wPUBz//EABwQAAMBAAIDAAAAAAAAAAAAAAECAwAEEhEhMv/aAAgBAQABBQKXVcWnTBnnrwHYIGI40tRj5j9A+v/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABgRAAIDAAAAAAAAAAAAAAAAAAABEBFR/9oACAECAQE/AWi0bH//xAAfEAACAgIBBQAAAAAAAAAAAAAAAREhAhIQMkFRcYH/2gAIAQEABj8Czy26nRqx4ryTM3MCruXL+jPfH//EABsQAAMBAQEBAQAAAAAAAAAAAAABESExUUGB/9oACAEBAAE/IciyprpKg3+DnlXilF99PwgGhJan1sVAzTb6Y4f/2gAMAwEAAgADAAAAEF/4/wD/xAAXEQEBAQEAAAAAAAAAAAAAAAABABEx/9oACAEDAQE/EDMnscJv/8QAGBEBAAMBAAAAAAAAAAAAAAAAAQAQESH/2gAIAQIBAT8Q6LsMo0//xAAgEAEBAAIBAwUAAAAAAAAAAAABEQAhMRBRYYGhweHx/9oACAEBAAE/EApBPFBUr5uXjxBXbN86azXHxMCnKLRDzJzvNcUtyQHeIVKqFX0wZktfb8x4pRs7376J/9k=","aspectRatio":1,"src":"/static/112d7159f7c020bdec3bdf12fb558466/61cdf/bryan-lee.jpg","srcSet":"/static/112d7159f7c020bdec3bdf12fb558466/7c20e/bryan-lee.jpg 25w,\n/static/112d7159f7c020bdec3bdf12fb558466/fa1ea/bryan-lee.jpg 50w,\n/static/112d7159f7c020bdec3bdf12fb558466/61cdf/bryan-lee.jpg 100w,\n/static/112d7159f7c020bdec3bdf12fb558466/59538/bryan-lee.jpg 150w,\n/static/112d7159f7c020bdec3bdf12fb558466/fd013/bryan-lee.jpg 200w,\n/static/112d7159f7c020bdec3bdf12fb558466/f86e8/bryan-lee.jpg 460w","srcWebp":"/static/112d7159f7c020bdec3bdf12fb558466/66016/bryan-lee.webp","srcSetWebp":"/static/112d7159f7c020bdec3bdf12fb558466/74aad/bryan-lee.webp 25w,\n/static/112d7159f7c020bdec3bdf12fb558466/e7b2c/bryan-lee.webp 50w,\n/static/112d7159f7c020bdec3bdf12fb558466/66016/bryan-lee.webp 100w,\n/static/112d7159f7c020bdec3bdf12fb558466/d9b14/bryan-lee.webp 150w,\n/static/112d7159f7c020bdec3bdf12fb558466/6b183/bryan-lee.webp 200w,\n/static/112d7159f7c020bdec3bdf12fb558466/d908f/bryan-lee.webp 460w","sizes":"(max-width: 100px) 100vw, 100px"},"large":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAMEBQL/xAAWAQEBAQAAAAAAAAAAAAAAAAACAwH/2gAMAwEAAhADEAAAAe5VadK7YMR0wPUBz//EABwQAAMBAAIDAAAAAAAAAAAAAAECAwAEEhEhMv/aAAgBAQABBQKXVcWnTBnnrwHYIGI40tRj5j9A+v/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABgRAAIDAAAAAAAAAAAAAAAAAAABEBFR/9oACAECAQE/AWi0bH//xAAfEAACAgIBBQAAAAAAAAAAAAAAAREhAhIQMkFRcYH/2gAIAQEABj8Czy26nRqx4ryTM3MCruXL+jPfH//EABsQAAMBAQEBAQAAAAAAAAAAAAABESExUUGB/9oACAEBAAE/IciyprpKg3+DnlXilF99PwgGhJan1sVAzTb6Y4f/2gAMAwEAAgADAAAAEF/4/wD/xAAXEQEBAQEAAAAAAAAAAAAAAAABABEx/9oACAEDAQE/EDMnscJv/8QAGBEBAAMBAAAAAAAAAAAAAAAAAQAQESH/2gAIAQIBAT8Q6LsMo0//xAAgEAEBAAIBAwUAAAAAAAAAAAABEQAhMRBRYYGhweHx/9oACAEBAAE/EApBPFBUr5uXjxBXbN86azXHxMCnKLRDzJzvNcUtyQHeIVKqFX0wZktfb8x4pRs7376J/9k=","aspectRatio":1,"src":"/static/112d7159f7c020bdec3bdf12fb558466/ec46e/bryan-lee.jpg","srcSet":"/static/112d7159f7c020bdec3bdf12fb558466/a2637/bryan-lee.jpg 82w,\n/static/112d7159f7c020bdec3bdf12fb558466/15203/bryan-lee.jpg 164w,\n/static/112d7159f7c020bdec3bdf12fb558466/ec46e/bryan-lee.jpg 328w,\n/static/112d7159f7c020bdec3bdf12fb558466/f86e8/bryan-lee.jpg 460w","srcWebp":"/static/112d7159f7c020bdec3bdf12fb558466/5a48e/bryan-lee.webp","srcSetWebp":"/static/112d7159f7c020bdec3bdf12fb558466/2d087/bryan-lee.webp 82w,\n/static/112d7159f7c020bdec3bdf12fb558466/29d87/bryan-lee.webp 164w,\n/static/112d7159f7c020bdec3bdf12fb558466/5a48e/bryan-lee.webp 328w,\n/static/112d7159f7c020bdec3bdf12fb558466/d908f/bryan-lee.webp 460w","sizes":"(max-width: 328px) 100vw, 328px"}}}],"basePath":"/","permalink":"https://liby.github.io/2020-05-26-personal-configuration-of-some-dotfile-files/","slug":"/2020-05-26-personal-configuration-of-some-dotfile-files","id":"e903c32f-5efc-5146-9483-5b8258836127","title":"关于我个人的一些 `dotfile` 文件的配置","canonicalUrl":null,"mailchimp":"","next":[{"id":"1a43dd34-6304-52e9-ac66-197297cd3878","slug":"/2020-05-25-error-passing-arguments-when-calling-new-array-causes-typecript-to-throw-an-error","secret":false,"title":"记一次 new Array() 时错误传递参数导致 TypeScript 报错的来龙去脉","author":"Bryan Lee","date":"May 25th, 2020","dateForSEO":"2020-05-25T00:00:00.000Z","timeToRead":1,"excerpt":"因为不想被 block 住，完成 ticket 是首要的，所以没有深究这个报错，便选择了折中的解决方案。后续空闲下来，再看这个部分的代码，认为 `Object.assign(this, data);` 这个地方写的异常丑陋， `new Providers()` 的传值被暴力复制给了 `this`，完全失去了传参意义，且代码可维护性极差。","canonical_url":null,"subscription":true,"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"记一次 new Array() 时错误传递参数导致 TypeScript 报错的来龙去脉\",\n  \"slug\": \"2020-05-25-error-passing-arguments-when-calling-new-array-causes-typecript-to-throw-an-error\",\n  \"author\": \"Bryan Lee\",\n  \"date\": \"2020-05-25T00:00:00.000Z\",\n  \"hero\": \"./images/hero.jpeg\",\n  \"excerpt\": \"因为不想被 block 住，完成 ticket 是首要的，所以没有深究这个报错，便选择了折中的解决方案。后续空闲下来，再看这个部分的代码，认为 `Object.assign(this, data);` 这个地方写的异常丑陋， `new Providers()` 的传值被暴力复制给了 `this`，完全失去了传参意义，且代码可维护性极差。\",\n  \"tags\": [\"Array\", \"TypeScript\", \"class\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", {\n    \"id\": \"起因\"\n  }, \"\\u8D77\\u56E0\"), mdx(\"p\", null, \"\\u5728\\u5199\\u4E1A\\u52A1\\u4EE3\\u7801\\u65F6\\uFF0Cleader \\u6253\\u7B97\\u628A AngularJS \\u4EE3\\u7801\\u4E2D\\u7684\\u4F17\\u591A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"$provide.value\"), \" \\u62BD\\u79BB\\u51FA\\u6765\\uFF0C\\u653E\\u5230\\u7C7B\\u4F3C \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"common\"), \" \\u7B49\\u6587\\u4EF6\\u5939\\u4E0B\\u5E76 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"export\"), \"\\uFF0C\\u5728\\u9700\\u8981\\u7528\\u5230\\u7684\\u6587\\u4EF6\\u4E2D\\u518D\\u5355\\u72EC \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"import\"), \" \\u8FDB\\u6765\\u3002\"), mdx(\"p\", null, \"\\u6211\\u8D1F\\u8D23\\u91CD\\u6784\\u7684\\u8FD9\\u4E2A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"$provide.value\"), \" \\u662F\\u4E00\\u4E2A\\u5BF9\\u8C61\\u6570\\u7EC4\\uFF0C\\u5E76\\u4E14\\u9700\\u8981\\u5728 Array \\u57FA\\u7C7B\\u7684\\u57FA\\u7840\\u4E0A\\u4E3A\\u5B83\\u6DFB\\u52A0\\u4E00\\u4E2A\\u65B9\\u6CD5\\u3002\"), mdx(\"p\", null, \"\\u6700\\u7EC8\\u5B9E\\u73B0\\u4EE3\\u7801\\u5982\\u4E0B\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-ts\"\n  }), \"interface IProvider {\\n  type: string;\\n  name: string;\\n}\\n\\nclass Providers extends Array<IProvider> {\\n  constructor(data: IProvider[]) {\\n    super();\\n    Object.assign(this, data);\\n  }\\n\\n  $getProvider(type: string): IProvider | undefined {\\n    return this.find((item) => item.type === type);\\n  }\\n}\\n\\nexport const demo = new Providers(\\n  [\\n    {\\n      type: \\\"temp\\\",\\n      name: \\\"Provider1\\\"\\n    },\\n    {\\n      type: \\\"test\\\",\\n      name: \\\"Provider2\\\"\\n    }\\n  ]\\n);\\n\")), mdx(\"p\", null, \"\\u91CD\\u70B9\\u6765\\u8BF4\\u8BF4\\u8FD9\\u4E2A\\u90E8\\u5206\\u7684\\u4EE3\\u7801\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-ts\"\n  }), \"  constructor(data: IProvider[]) {\\n    super();\\n    Object.assign(this, data);\\n  }\\n\")), mdx(\"p\", null, \"\\u8FD9\\u91CC\\u7EAF\\u7CB9\\u662F\\u65E0\\u5948\\u59A5\\u534F\\u4E4B\\u4E3E\\uFF0C\\u4E0D\\u5199\\u7684\\u8BDD\\uFF0C\\u53D1\\u73B0 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"new Providers()\"), \" \\u7684\\u65F6\\u5019\\u76F4\\u63A5\\u4F20\\u5165\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u4E00\\u6574\\u4E2A\\u5BF9\\u8C61\\u6570\\u7EC4\\u7684\\u6570\\u636E\"), \"\\uFF0C\\u5C06\\u5F97\\u5230\\u5982\\u4E0B\\u62A5\\u9519\\uFF1A\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1376px\"\n    }\n  }), \"\\n      \", mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"23.69186046511628%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA30lEQVQY0z2Oa26DMBCEOUf7IyG8whsDNthgg8FOIAgaqVLuf5Quoa30abUa7cysQdtRqkWqR4xq04ltLwUubmJ5qenG+3QSN0DXqATxbEdw84/BuNL3rW6GrGgQ5pBVMUloDzoTeryt3TC3nZZ66cf5ZIUARBwYYpz19AUeQiWuu4ar3Sk0l/fH+r09X+vzJeSkpg12ODs6f824ZHXdhQnxwjyIcZDsRFkFE16o9o9YktO0oBBaEO5H5dn5a/4QyyeRiAjGb20/YTpcPGRdgdx00zcZKMCx235u+8Wb/AexmDx/dICvwAAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/13892472a37fcdb99f336456f6f53433/902f9/article-image-1.webp 1376w\"],\n    \"sizes\": \"(max-width: 1376px) 100vw, 1376px\",\n    \"type\": \"image/webp\"\n  })), \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/13892472a37fcdb99f336456f6f53433/f4ca3/article-image-1.png 1376w\"],\n    \"sizes\": \"(max-width: 1376px) 100vw, 1376px\",\n    \"type\": \"image/png\"\n  })), \"\\n        \", mdx(\"img\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/13892472a37fcdb99f336456f6f53433/f4ca3/article-image-1.png\",\n    \"alt\": \"TypeScript 的报错信息\",\n    \"title\": \"TypeScript 的报错信息\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  })), \"\\n      \"), \"\\n    \")), mdx(\"p\", null, \"\\u56E0\\u4E3A\\u4E0D\\u60F3\\u88AB block \\u4F4F\\uFF0C\\u5B8C\\u6210 ticket \\u662F\\u9996\\u8981\\u7684\\uFF0C\\u6240\\u4EE5\\u6CA1\\u6709\\u6DF1\\u7A76\\u8FD9\\u4E2A\\u62A5\\u9519\\uFF0C\\u4FBF\\u9009\\u62E9\\u4E86\\u6298\\u4E2D\\u7684\\u89E3\\u51B3\\u65B9\\u6848\\u3002\\u540E\\u7EED\\u7A7A\\u95F2\\u4E0B\\u6765\\uFF0C\\u518D\\u770B\\u8FD9\\u4E2A\\u90E8\\u5206\\u7684\\u4EE3\\u7801\\uFF0C\\u8BA4\\u4E3A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Object.assign(this, data);\"), \" \\u8FD9\\u4E2A\\u5730\\u65B9\\u5199\\u7684\\u5F02\\u5E38\\u4E11\\u964B\\uFF0C \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"new Providers()\"), \" \\u7684\\u4F20\\u503C\\u88AB\\u66B4\\u529B\\u590D\\u5236\\u7ED9\\u4E86 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"this\"), \"\\uFF0C\\u5B8C\\u5168\\u5931\\u53BB\\u4E86\\u4F20\\u53C2\\u610F\\u4E49\\uFF0C\\u4E14\\u4EE3\\u7801\\u53EF\\u7EF4\\u62A4\\u6027\\u6781\\u5DEE\\u3002\"), mdx(\"h2\", {\n    \"id\": \"过程\"\n  }, \"\\u8FC7\\u7A0B\"), mdx(\"p\", null, \"\\u5F00\\u59CB\\u6211\\u6000\\u7591\\u6570\\u7EC4\\u5B9A\\u4E49\\u5199\\u9519\\u4E86\\uFF0C\\u662F\\u4E0D\\u662F\\u5E94\\u8BE5\\u5199\\u6210 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Array<IProvider[]>\"), \"\\uFF0C\\u8FD9\\u6837 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"new Providers()\"), \" \\u7684\\u65F6\\u5019\\u4F20\\u4E00\\u4E2A\\u6570\\u7EC4\\u8FDB\\u53BB\\u5C31\\u6CA1\\u6709\\u4EFB\\u4F55\\u95EE\\u9898\\uFF0C\\u4E0D\\u8FC7\\u8FD9\\u6837\\u505A\\u7684\\u5F97\\u5230\\u7684\\u662F\\u4E00\\u4E2A\\u4E8C\\u7EF4\\u6570\\u7EC4\\uFF0C\\u4E0E\\u9884\\u60F3\\u7684\\u6570\\u636E\\u7ED3\\u6784\\u6709\\u6240\\u51FA\\u5165\\u3002\"), mdx(\"p\", null, \"\\u4E4B\\u540E\\u8DDF leader \\u8BA8\\u8BBA\\u4E86\\u4E00\\u4E0B\\uFF0C\\u731C\\u6D4B\\u662F\\u4E0D\\u662F TypeScript \\u5BF9\\u8FD9\\u90E8\\u5206\\u7684\\u6CDB\\u578B\\u5B9A\\u4E49\\u6709\\u95EE\\u9898\\uFF0C\\u9042\\u5F00\\u59CB\\u67E5\\u9605 MDN \\u7684\\u6587\\u6863\\uFF0C\\u5F53\\u5373\\u53D1\\u73B0 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"new Array()\"), \" \\u7684\\u65F6\\u5019\\u76F4\\u63A5\\u4F20\\u5165\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u4E00\\u6574\\u4E2A\\u6570\\u7EC4\\u7684\\u6570\\u636E\"), \"\\u4F5C\\u4E3A\\u53C2\\u6570\\u4E0E\\u6211\\u9884\\u60F3\\u7684\\u7ED3\\u679C\\u786E\\u5B9E\\u6709\\u6240\\u51FA\\u5165\\uFF1A\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"2040px\"\n    }\n  }), \"\\n      \", mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"51.66666666666666%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA5ElEQVQoz5WR2w6CMBBE+/9fxG9oopEgF2sb0VKlCTe5OtmNPpgS43kgC11mZ7biJGVVVcuyzPOM5zRN4zguxPQLcdaXwpgHUdf1nUABxWYdNHRdJzb7w3632xJRFKVpeiaSJMnz3Fpb+DDGlGUpjLWk1PCo5xsIt23brYMeEQQBPHwy/4XIskwp9fHjnMN8S/Arf8d6PD/DvdYaEkgbxzGiIjCnBbxIrNDrS0AVrcMw4Hgk+r7/alpLJG63a3w8wjmGh2HIFqSUbIS94NRv+1rYRCqlNbyVzvFt4xoc1Vxgsd7JL5j7On8FUO03AAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/d093f2a870b5f6b958e6278026b7ee67/6dd0f/article-image-2.webp 2040w\"],\n    \"sizes\": \"(max-width: 2040px) 100vw, 2040px\",\n    \"type\": \"image/webp\"\n  })), \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/d093f2a870b5f6b958e6278026b7ee67/054ef/article-image-2.png 2040w\"],\n    \"sizes\": \"(max-width: 2040px) 100vw, 2040px\",\n    \"type\": \"image/png\"\n  })), \"\\n        \", mdx(\"img\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/d093f2a870b5f6b958e6278026b7ee67/054ef/article-image-2.png\",\n    \"alt\": \"New Array() 所接收的参数说明\",\n    \"title\": \"New Array() 所接收的参数说明\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  })), \"\\n      \"), \"\\n    \"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u6BD4\\u5982\"), mdx(\"pre\", {\n    parentName: \"li\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-js\"\n  }), \"// \\u60F3\\u5F97\\u5230\\u6570\\u7EC4 `[{name: demo}, {name: test}]`\\n// \\u9519\\u8BEF\\uFF0C\\u8FD4\\u56DE\\u7684\\u662F [[{name: demo}, {name: test}]]\\nnew Array([{name: \\\"demo\\\"}, {name: \\\"test\\\"}])\\n\\n// \\u6B63\\u786E\\nnew Array(...[{name: \\\"demo\\\"}, {name: \\\"test\\\"}])\\n\")))), mdx(\"p\", null, \"\\u5176\\u5B9E\\uFF0C\\u5728 VSCode \\u4E2D\\uFF0C\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Command + \\u5149\\u6807\"), \" \\u70B9\\u51FB \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"new Providers\"), \" \\u4E5F\\u80FD\\u770B\\u5230\\u8BE5\\u65B9\\u6CD5\\u7684\\u7C7B\\u578B\\u5B9A\\u4E49\\uFF1A\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1816px\"\n    }\n  }), \"\\n      \", mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"37.77533039647577%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAIAAAB2/0i6AAAACXBIWXMAABYlAAAWJQFJUiTwAAABLElEQVQY013Pi06DMBSAYV5jo9fTe2mBAk4cOJgTef83EhY1c8mXpjnJaf5m9fmrSde2m9v+Pb1Mp3FOp942gy5fhWu4b9nGNcwlbmtia2wqrCtqKulTxnWgYIz2QhZMWcYdFZbIgoJlVCGmD1QfsDiA8+dl+liHy226Ls240DRlhEhOhBSScZVjQIgfc5bnbLsgvMMIMOYEnOumeV7GYVqXdZhXqMaMyFDKrrVpKEJfhi5FLfz24n0TfiDOwHHlCFgMBoPd6ri02dGm0oy9+5z15S1Op/pWFYPQJaj4X+DKw0bvJ7/LjromsmxlOMkqhjrYCpjb+4l4hJnmvzt/MqxLoqLRbeOL6GJQhQSN0J76CFO5ZT/JmIpCRM4D26u2kd8+ljPzBIFnpnryDfRbSmKQ2TzNAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"picture\", {\n    parentName: \"span\"\n  }, \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/5934274e2f4efbdb1ab113947eb441bf/8b785/article-image-3.webp 1816w\"],\n    \"sizes\": \"(max-width: 1816px) 100vw, 1816px\",\n    \"type\": \"image/webp\"\n  })), \"\\n        \", mdx(\"source\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"srcSet\": [\"/static/5934274e2f4efbdb1ab113947eb441bf/18b25/article-image-3.png 1816w\"],\n    \"sizes\": \"(max-width: 1816px) 100vw, 1816px\",\n    \"type\": \"image/png\"\n  })), \"\\n        \", mdx(\"img\", _extends({\n    parentName: \"picture\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"src\": \"/static/5934274e2f4efbdb1ab113947eb441bf/18b25/article-image-3.png\",\n    \"alt\": \"Array constructor 的类型定义\",\n    \"title\": \"Array constructor 的类型定义\",\n    \"loading\": \"lazy\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    }\n  })), \"\\n      \"), \"\\n    \")), mdx(\"p\", null, \"\\u6B64\\u5916\\uFF0C\\u5728 \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Array\",\n    \"title\": \"MDN 中有关 Array() constructor 的说明\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"MDN/Array() constructor\"), \" \\u4E2D\\u4E5F\\u6709\\u76F8\\u540C\\u7684\\u5B9A\\u4E49\\uFF0C\\u6240\\u4EE5\\u4E0D\\u51C6\\u786E\\u7684\\u6982\\u62EC\\u4E0B\\uFF1A\\u5982\\u679C\\u6CA1\\u6709\\u5B9A\\u4E49 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"constructor()\"), \" \\u6240\\u63A5\\u6536\\u7684\\u53C2\\u6570\\u7C7B\\u578B\\uFF0C\\u90A3\\u4E48 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"new <T>()\"), \" \\u4F1A\\u9ED8\\u8BA4\\u63A5\\u6536 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"arrayLength: number\"), \" \\u6216 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"...items: T[]\"), \" \\u8FD9\\u4E24\\u79CD\\u53C2\\u6570\\u7C7B\\u578B\\u3002\"), mdx(\"p\", null, \"\\u65E2\\u7136\\u77E5\\u9053\\u4E86\\u539F\\u56E0\\u90A3\\u4E48\\uFF0C\\u95EE\\u9898\\u5C31\\u8FCE\\u5203\\u800C\\u89E3\\u4E86\\uFF0C\\u4E0D\\u5570\\u55E6\\u4E0A\\u4EE3\\u7801\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-ts\"\n  }), \"interface IProvider {\\n  type: string;\\n  name: string;\\n}\\n\\nclass Providers extends Array<IProvider> {\\n  $getProvider(type: string): IProvider | undefined {\\n    return this.find((item) => item.type === type);\\n  }\\n}\\n\\nexport const demo = new Providers(\\n  ...[\\n    {\\n      type: \\\"temp\\\",\\n      name: \\\"Provider1\\\"\\n    },\\n    {\\n      type: \\\"test\\\",\\n      name: \\\"Provider2\\\"\\n    }\\n  ]\\n);\\n\")), mdx(\"h2\", {\n    \"id\": \"总结\"\n  }, \"\\u603B\\u7ED3\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Class \\u5199\\u7684\\u592A\\u5C11\\uFF0CTypeScript \\u7528\\u7684\\u4E0D\\u719F\\u3002\")));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQME/9oADAMBAAIQAxAAAAFGl2mZMSH/xAAYEAADAQEAAAAAAAAAAAAAAAAAAQIREP/aAAgBAQABBQKXKWybAu//xAAWEQADAAAAAAAAAAAAAAAAAAAAARP/2gAIAQMBAT8BsyrP/8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAECAQE/AYRKP//EABYQAQEBAAAAAAAAAAAAAAAAAEEAIP/aAAgBAQAGPwJmcf/EABgQAQEAAwAAAAAAAAAAAAAAAAEAICFB/9oACAEBAAE/IQhxGGhd3//aAAwDAQACAAMAAAAQdz//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/EAv/xAAaEAEBAQADAQAAAAAAAAAAAAABABEhUYGR/9oACAEBAAE/EA6Psw1fM7c6+SUmQxf/2Q==","aspectRatio":1.5031847133757963,"src":"/static/e0f6f9f2481a3a6083de093873a09a17/58fe7/hero.jpg","srcSet":"/static/e0f6f9f2481a3a6083de093873a09a17/e0f30/hero.jpg 236w,\n/static/e0f6f9f2481a3a6083de093873a09a17/86afd/hero.jpg 472w,\n/static/e0f6f9f2481a3a6083de093873a09a17/58fe7/hero.jpg 944w,\n/static/e0f6f9f2481a3a6083de093873a09a17/02748/hero.jpg 1416w,\n/static/e0f6f9f2481a3a6083de093873a09a17/5c241/hero.jpg 1888w,\n/static/e0f6f9f2481a3a6083de093873a09a17/abdbb/hero.jpg 2550w","srcWebp":"/static/e0f6f9f2481a3a6083de093873a09a17/99fbb/hero.webp","srcSetWebp":"/static/e0f6f9f2481a3a6083de093873a09a17/77392/hero.webp 236w,\n/static/e0f6f9f2481a3a6083de093873a09a17/1f177/hero.webp 472w,\n/static/e0f6f9f2481a3a6083de093873a09a17/99fbb/hero.webp 944w,\n/static/e0f6f9f2481a3a6083de093873a09a17/4a492/hero.webp 1416w,\n/static/e0f6f9f2481a3a6083de093873a09a17/b0b8f/hero.webp 1888w,\n/static/e0f6f9f2481a3a6083de093873a09a17/0b63c/hero.webp 2550w","sizes":"(max-width: 944px) 100vw, 944px"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQME/9oADAMBAAIQAxAAAAFGl2mZMSH/xAAYEAADAQEAAAAAAAAAAAAAAAAAAQIREP/aAAgBAQABBQKXKWybAu//xAAWEQADAAAAAAAAAAAAAAAAAAAAARP/2gAIAQMBAT8BsyrP/8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAECAQE/AYRKP//EABYQAQEBAAAAAAAAAAAAAAAAAEEAIP/aAAgBAQAGPwJmcf/EABgQAQEAAwAAAAAAAAAAAAAAAAEAICFB/9oACAEBAAE/IQhxGGhd3//aAAwDAQACAAMAAAAQdz//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/EAv/xAAaEAEBAQADAQAAAAAAAAAAAAABABEhUYGR/9oACAEBAAE/EA6Psw1fM7c6+SUmQxf/2Q==","aspectRatio":1.4954128440366972,"src":"/static/e0f6f9f2481a3a6083de093873a09a17/1dc0b/hero.jpg","srcSet":"/static/e0f6f9f2481a3a6083de093873a09a17/3a5ce/hero.jpg 163w,\n/static/e0f6f9f2481a3a6083de093873a09a17/05730/hero.jpg 327w,\n/static/e0f6f9f2481a3a6083de093873a09a17/1dc0b/hero.jpg 653w,\n/static/e0f6f9f2481a3a6083de093873a09a17/f72c7/hero.jpg 980w,\n/static/e0f6f9f2481a3a6083de093873a09a17/6e4a3/hero.jpg 1306w,\n/static/e0f6f9f2481a3a6083de093873a09a17/abdbb/hero.jpg 2550w","srcWebp":"/static/e0f6f9f2481a3a6083de093873a09a17/0acdf/hero.webp","srcSetWebp":"/static/e0f6f9f2481a3a6083de093873a09a17/ac59e/hero.webp 163w,\n/static/e0f6f9f2481a3a6083de093873a09a17/7660b/hero.webp 327w,\n/static/e0f6f9f2481a3a6083de093873a09a17/0acdf/hero.webp 653w,\n/static/e0f6f9f2481a3a6083de093873a09a17/75470/hero.webp 980w,\n/static/e0f6f9f2481a3a6083de093873a09a17/68d47/hero.webp 1306w,\n/static/e0f6f9f2481a3a6083de093873a09a17/0b63c/hero.webp 2550w","sizes":"(max-width: 653px) 100vw, 653px"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQME/9oADAMBAAIQAxAAAAFGl2mZMSH/xAAYEAADAQEAAAAAAAAAAAAAAAAAAQIREP/aAAgBAQABBQKXKWybAu//xAAWEQADAAAAAAAAAAAAAAAAAAAAARP/2gAIAQMBAT8BsyrP/8QAFhEAAwAAAAAAAAAAAAAAAAAAAAES/9oACAECAQE/AYRKP//EABYQAQEBAAAAAAAAAAAAAAAAAEEAIP/aAAgBAQAGPwJmcf/EABgQAQEAAwAAAAAAAAAAAAAAAAEAICFB/9oACAEBAAE/IQhxGGhd3//aAAwDAQACAAMAAAAQdz//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/EAv/xAAaEAEBAQADAQAAAAAAAAAAAAABABEhUYGR/9oACAEBAAE/EA6Psw1fM7c6+SUmQxf/2Q==","aspectRatio":1.5,"src":"/static/e0f6f9f2481a3a6083de093873a09a17/eaa58/hero.jpg","srcSet":"/static/e0f6f9f2481a3a6083de093873a09a17/5a3ee/hero.jpg 114w,\n/static/e0f6f9f2481a3a6083de093873a09a17/41f8f/hero.jpg 229w,\n/static/e0f6f9f2481a3a6083de093873a09a17/eaa58/hero.jpg 457w,\n/static/e0f6f9f2481a3a6083de093873a09a17/c309b/hero.jpg 686w,\n/static/e0f6f9f2481a3a6083de093873a09a17/e3008/hero.jpg 914w,\n/static/e0f6f9f2481a3a6083de093873a09a17/abdbb/hero.jpg 2550w","srcWebp":"/static/e0f6f9f2481a3a6083de093873a09a17/15384/hero.webp","srcSetWebp":"/static/e0f6f9f2481a3a6083de093873a09a17/31fce/hero.webp 114w,\n/static/e0f6f9f2481a3a6083de093873a09a17/e3e25/hero.webp 229w,\n/static/e0f6f9f2481a3a6083de093873a09a17/15384/hero.webp 457w,\n/static/e0f6f9f2481a3a6083de093873a09a17/0258d/hero.webp 686w,\n/static/e0f6f9f2481a3a6083de093873a09a17/64ea2/hero.webp 914w,\n/static/e0f6f9f2481a3a6083de093873a09a17/0b63c/hero.webp 2550w","sizes":"(max-width: 457px) 100vw, 457px"},"seo":{"src":"/static/e0f6f9f2481a3a6083de093873a09a17/0ff54/hero.jpg"}}},{"id":"13bb87ce-68b2-5a0f-868f-da2e7bbef330","slug":"/2022-08-14-use-case-sensitive-apfs-volume","secret":false,"title":"在 macOS 中配置大小写敏感的 APFS 卷存储代码","author":"Bryan Lee","date":"August 14th, 2022","dateForSEO":"2022-08-14T00:00:00.000Z","timeToRead":1,"excerpt":"如果你的 macOS 是刚到手没多久的，那么直接重装，设置文件系统为大小写敏感就好了。但是如果你的 macOS 已经使用过一段时间，做了许多设置且存储了很多重要文件了，再重装就有些划不来","canonical_url":null,"subscription":true,"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"在 macOS 中配置大小写敏感的 APFS 卷存储代码\",\n  \"slug\": \"2022-08-14-use-case-sensitive-apfs-volume\",\n  \"author\": \"Bryan Lee\",\n  \"date\": \"2022-08-14T00:00:00.000Z\",\n  \"hero\": \"./images/hero.jpeg\",\n  \"excerpt\": \"如果你的 macOS 是刚到手没多久的，那么直接重装，设置文件系统为大小写敏感就好了。但是如果你的 macOS 已经使用过一段时间，做了许多设置且存储了很多重要文件了，再重装就有些划不来\",\n  \"tags\": [\"macOS\", \"APFS\", \"Case-sensitive\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", {\n    \"id\": \"为什么要配置大小写敏感的-apfs-卷\"\n  }, \"\\u4E3A\\u4EC0\\u4E48\\u8981\\u914D\\u7F6E\\u5927\\u5C0F\\u5199\\u654F\\u611F\\u7684 APFS \\u5377\"), mdx(\"p\", null, \"macOS \\u7684\\u9ED8\\u8BA4\\u5206\\u533A\\u548C\\u5377\\u90FD\\u662F\\u4E0D\\u533A\\u5206\\u5927\\u5C0F\\u5199\\u7684\\uFF0C\\u800C Linux \\u7CFB\\u7EDF\\u4E00\\u822C\\u662F\\u533A\\u5206\\u5927\\u5C0F\\u5199\\u7684\\uFF0C\\u6211\\u4EEC\\u4E00\\u822C\\u53D1\\u5E03\\u3001\\u90E8\\u7F72\\u73AF\\u5883\\u7684 CI/CD \\u90FD\\u662F Linux\\u3002\\u8FD9\\u79CD\\u5DEE\\u5F02\\u53EF\\u80FD\\u4F1A\\u5E26\\u6765\\u4E00\\u4E9B\\u4F7F\\u7528\\u95EE\\u9898\\uFF0C\\u6BD4\\u5982\\uFF1A\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://learnku.com/articles/3782/a-pit-reminder-a-class-or-a-trait-suddenly-can-not-find\",\n    \"title\": \"一个小坑提醒：某个 Class 或某个 Trait 突然找不到\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"\\u4E00\\u4E2A\\u5C0F\\u5751\\u63D0\\u9192\\uFF1A\\u67D0\\u4E2A Class \\u6216\\u67D0\\u4E2A Trait \\u7A81\\u7136\\u627E\\u4E0D\\u5230\"), \"\\u3002\"), mdx(\"h2\", {\n    \"id\": \"解决方案\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), mdx(\"p\", null, \"\\u5982\\u679C\\u4F60\\u7684 macOS \\u662F\\u521A\\u5230\\u624B\\u6CA1\\u591A\\u4E45\\u7684\\uFF0C\\u90A3\\u4E48\\u76F4\\u63A5\\u91CD\\u88C5\\uFF0C\\u8BBE\\u7F6E\\u6587\\u4EF6\\u7CFB\\u7EDF\\u4E3A\\u5927\\u5C0F\\u5199\\u654F\\u611F\\u5C31\\u597D\\u4E86\\u3002\\u4F46\\u662F\\u5982\\u679C\\u4F60\\u7684 macOS \\u5DF2\\u7ECF\\u4F7F\\u7528\\u8FC7\\u4E00\\u6BB5\\u65F6\\u95F4\\uFF0C\\u505A\\u4E86\\u8BB8\\u591A\\u8BBE\\u7F6E\\u4E14\\u5B58\\u50A8\\u4E86\\u5F88\\u591A\\u91CD\\u8981\\u6587\\u4EF6\\u4E86\\uFF0C\\u518D\\u91CD\\u88C5\\u5C31\\u6709\\u4E9B\\u5212\\u4E0D\\u6765\\u3002\"), mdx(\"p\", null, \"\\u4F46\\u662F macOS \\u7684 APFS \\u6587\\u4EF6\\u7CFB\\u7EDF\\u4E3A\\u6211\\u4EEC\\u63D0\\u4F9B\\u4E86\\u5B8C\\u7F8E\\u7684\\u89E3\\u51B3\\u65B9\\u6848\\uFF1A\\u65B0\\u52A0\\u4E00\\u4E2A\\u5927\\u5C0F\\u5199\\u654F\\u611F\\u7684 APFS \\u5B97\\u5377\\u3002\\u5173\\u4E8E APFS \\u7684\\u4ECB\\u7ECD\\u53EF\\u4EE5\\u53C2\\u8003\", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://support.apple.com/zh-cn/guide/system-information/sysp560a2952/mac\",\n    \"title\": \"在“系统信息”中查看您的 Mac 是否在 APFS 宗卷中共享空间\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"\\u5B98\\u65B9\\u8BF4\\u660E\"), \"\\uFF0C\\u5176\\u4E2D\\u201C\\u5BB9\\u5668\\u201D\\u6307\\u7684\\u5C31\\u662F\\u78C1\\u76D8\\u3002\\u610F\\u601D\\u5C31\\u662F\\u5BF9\\u4E8E\\u5185\\u7F6E\\u78C1\\u76D8\\uFF0C\\u6211\\u4EEC\\u53EF\\u4EE5\\u6DFB\\u52A0 APFS \\u5B97\\u5377\\uFF0C\\u65B0\\u589E\\u7684 APFS \\u5B97\\u5377\\u5171\\u4EAB\\u5185\\u7F6E\\u78C1\\u76D8\\u7684\\u5269\\u4F59\\u7A7A\\u95F4\\uFF0C\\u4E0E Windows \\u7684\\u78C1\\u76D8\\u5206\\u533A\\u662F\\u4E0D\\u4E00\\u6837\\u7684\\uFF0C\\u6BD4\\u5206\\u533A\\u7B80\\u5355\\u5FEB\\u6377\\u5F88\\u591A\\uFF0C\\u540C\\u65F6\\u8FD8\\u53EF\\u4EE5\\u5355\\u72EC\\u6307\\u5B9A\\u662F\\u5426\\u5927\\u5C0F\\u5199\\u654F\\u611F\\u3002\\u518D\\u52A0\\u4E0A Unix \\u80FD\\u591F\\u4EFB\\u610F\\u6302\\u8F7D\\u7684\\u7279\\u6027\\uFF0C\\u56E0\\u6B64\\u6211\\u53EA\\u9700\\u521B\\u5EFA\\u4E00\\u4E2A\\u65B0\\u5377\\uFF0C\\u5C06\\u9879\\u76EE\\u6587\\u4EF6\\u79FB\\u52A8\\u8FC7\\u53BB\\uFF0C\\u968F\\u540E\\u5C06\\u8BE5\\u5377\\u6302\\u8F7D\\u81F3\\u539F\\u4EE3\\u7801\\u76EE\\u5F55\\u5373\\u53EF\\u3002\"), mdx(\"h2\", {\n    \"id\": \"具体步骤：\"\n  }, \"\\u5177\\u4F53\\u6B65\\u9AA4\\uFF1A\"), mdx(\"h3\", {\n    \"id\": \"创建大小写敏感的卷\"\n  }, \"\\u521B\\u5EFA\\u5927\\u5C0F\\u5199\\u654F\\u611F\\u7684\\u5377\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u6253\\u5F00 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Disk Utility\"), \"\\uFF0C\\u786E\\u4FDD\\u4F60\\u7684\\u6587\\u4EF6\\u7CFB\\u7EDF\\u662F APFS\\uFF08\\u672C\\u6587\\u9ED8\\u8BA4\\u8BFB\\u8005\\u4F7F\\u7528 macOS Catalina \\u4EE5\\u4E0A\\u7684\\u7CFB\\u7EDF\\uFF09\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u5728\\u5DE6\\u4FA7\\u5217\\u8868\\u53F3\\u952E\\u5355\\u51FB \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Macintosh HD\"), \"\\uFF0C\\u9009\\u62E9 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Add APFS Volume\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u8BBE\\u7F6E\\u4E00\\u4E2A\\u5377\\u5B97\\u540D\\uFF0C\\u7136\\u540E \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Format\"), \" \\u9009\\u62E9 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"APFS (Case-sensitive)\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u70B9\\u51FB \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Add\"), \" \\u6309\\u94AE\\u5B8C\\u6210\\u521B\\u5EFA\"))), mdx(\"h3\", {\n    \"id\": \"迁移数据并修改挂载点\"\n  }, \"\\u8FC1\\u79FB\\u6570\\u636E\\u5E76\\u4FEE\\u6539\\u6302\\u8F7D\\u70B9\"), mdx(\"p\", null, \"\\u4E00\\u987F\\u64CD\\u4F5C\\u4EE5\\u540E\\uFF0C\\u65B0\\u521B\\u5EFA\\u7684\\u5B97\\u5377\\u5E94\\u8BE5\\u5DF2\\u7ECF\\u6302\\u8F7D\\u5230 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/Volumes/<VOLUME-NAME>\"), \" \\u8DEF\\u5F84\\uFF0C\\u63A5\\u4E0B\\u6765\\u4F60\\u53EF\\u4EE5\\u4F7F\\u7528 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"mv\"), \" \\u547D\\u4EE4\\uFF0C\\u6216\\u662F\\u901A\\u8FC7 Finder \\u7A97\\u53E3\\u5C06\\u539F\\u6709\\u4EE3\\u7801\\u6587\\u4EF6\\u79FB\\u52A8\\u5230\\u8FD9\\u4E2A\\u8DEF\\u5F84\\u4E0B\\u3002\"), mdx(\"p\", null, \"\\u56E0\\u4E3A\\u7CFB\\u7EDF\\u9ED8\\u8BA4\\u4F1A\\u5C06\\u6240\\u6709\\u5B97\\u5377\\u6302\\u8F7D\\u81F3 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/Volumes\"), \" \\u76EE\\u5F55\\u4E0B\\uFF0C\\u6709\\u7684\\u4EBA\\u53EF\\u80FD\\u66F4\\u559C\\u6B22\\u5C06\\u4EE3\\u7801\\u6587\\u4EF6\\u5939\\u653E\\u5728 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"$HOME\"), \" \\u76EE\\u5F55\\u4E0B\\uFF0C\\u6BD4\\u5982\\u6211\\u4F1A\\u4E60\\u60EF\\u653E\\u5728 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~/Code\"), \" \\u8DEF\\u5F84\\u4E0B\\uFF0C\\u56E0\\u6B64\\u9700\\u8981\\u5C06\\u65B0\\u5377\\u6302\\u8F7D\\u5230\\u8BE5\\u76EE\\u5F55\\u3002\"), mdx(\"p\", null, \"\\u518D\\u6B21\\u6253\\u5F00 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Disk Utility\"), \"\\uFF0C\\u5728\\u5DE6\\u4FA7\\u5217\\u8868\\u53F3\\u952E\\u5355\\u51FB\\u65B0\\u521B\\u5EFA\\u7684\\u5377\\uFF0C\\u9009\\u62E9 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Get Info\"), \"\\u3002\\u70B9\\u51FB \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"File system UUID\"), \" \\u4E00\\u884C\\uFF0C\\u4F7F\\u7528 Command + C \\u590D\\u5236\\u51FA\\u6765\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {}), \"File system UUID : XXXXXXXX-ABCD-DCBA-1234-XXXXXXXXXXXX\\n\")), mdx(\"p\", null, \"\\u63A5\\u4E0B\\u6765\\u70B9\\u51FB \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Unmount\"), \" \\u6309\\u94AE\\u5378\\u8F7D\\u8BE5\\u5377\\u3002\"), mdx(\"p\", null, \"\\u6253\\u5F00\\u7EC8\\u7AEF\\uFF0C\\u4F7F\\u7528 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"sudo vifs\"), \" \\u7F16\\u8F91 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/etc/fstab\"), \" \\u6587\\u4EF6\\uFF0C\\u8F93\\u5165\\u4EE5\\u4E0B\\u5185\\u5BB9\\u5E76\\u4FDD\\u5B58\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {}), \"UUID=XXXXXXXX-ABCD-DCBA-1234-XXXXXXXXXXXX <MOUNT_POINT> apfs rw 0 2\\n\")), mdx(\"p\", null, \"\\u8BF7\\u6CE8\\u610F\\u5C06 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"<MOUNT_POINT>\"), \" \\u66FF\\u6362\\u4E3A\\u6302\\u8F7D\\u76EE\\u5F55\\uFF0C\\u4F8B\\u5982 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/Users/user/Code\"), \"\\uFF0C\\u6B64\\u8DEF\\u5F84\\u53EF\\u4EE5\\u901A\\u8FC7\\u8BBF\\u95EE\\u8981\\u6302\\u8F7D\\u7684\\u76EE\\u6807\\u76EE\\u5F55\\u8F93\\u5165 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pwd\"), \" \\u547D\\u4EE4\\u6765\\u83B7\\u5F97\\u3002\\u82E5\\u8BE5\\u76EE\\u5F55\\u4E0D\\u5B58\\u5728\\uFF0C\\u4E0D\\u8981\\u5FD8\\u8BB0\\u63D0\\u524D\\u521B\\u5EFA\\u5B83\\u3002\"), mdx(\"p\", null, \"\\u6CE8\\u610F\\uFF0C\\u5173\\u4E8E\\u8FD9\\u4E00\\u6761\\u7684\\u6700\\u540E\\u4E24\\u4E2A\\u5B57\\u6BB5\\uFF0C\\u7B2C 5 \\u4E2A\\u5B57\\u6BB5\\u662F\\u5173\\u4E8E\\u662F\\u5426\\u5141\\u8BB8\\u8F6C\\u50A8\\u6587\\u4EF6\\u7CFB\\u7EDF\\u7684\\u6307\\u793A\\uFF08\\u5728 macOS \\u4E2D\\uFF0C\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"0\"), \" \\u662F\\u66F4\\u597D\\u7684\\u9009\\u62E9\\uFF09\\u3002\\u7B2C 6 \\u4E2A\\u5B57\\u6BB5\\u7528\\u4E8E\\u786E\\u5B9A fsck \\u7684\\u8FD0\\u884C\\u987A\\u5E8F\\u3002\\u66F4\\u4E3A\\u8BE6\\u7EC6\\u7684\\u4FE1\\u606F\\u53EF\\u4EE5\\u901A\\u8FC7\\u8FD0\\u884C \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"man 5 fstab\"), \" \\u83B7\\u53D6\\u3002\"), mdx(\"h3\", {\n    \"id\": \"重新挂载\"\n  }, \"\\u91CD\\u65B0\\u6302\\u8F7D\"), mdx(\"p\", null, \"\\u6253\\u5F00 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Disk Utility\"), \"\\uFF0C\\u91CD\\u65B0\\u70B9\\u51FB \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Mount\"), \" \\u6309\\u94AE\\u5373\\u6302\\u8F7D\\u6210\\u529F\\u3002\\u5728 Big Sur \\u7248\\u672C\\u4EE5\\u540E\\uFF0C\\u4F7F\\u7528 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"mount -a\"), \" \\u547D\\u4EE4\\u6302\\u8F7D\\u4F1A\\u9047\\u5230\\u62A5\\u9519\\u3002\"), mdx(\"h2\", {\n    \"id\": \"结语\"\n  }, \"\\u7ED3\\u8BED\"), mdx(\"h3\", {\n    \"id\": \"参考：\"\n  }, \"\\u53C2\\u8003\\uFF1A\"), mdx(\"p\", null, mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://wi1dcard.dev/posts/use-case-sensitive-apfs-volume/\",\n    \"title\": \"使用大小写敏感的 APFS 卷存储代码\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"\\u4F7F\\u7528\\u5927\\u5C0F\\u5199\\u654F\\u611F\\u7684 APFS \\u5377\\u5B58\\u50A8\\u4EE3\\u7801\")), mdx(\"p\", null, mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://discussions.apple.com/thread/253713554\",\n    \"title\": \"Change Default Mount Point of an APFS Encrypted Volume\",\n    \"target\": \"_blank\",\n    \"rel\": \"noreferrer\"\n  }), \"Change Default Mount Point of an APFS Encrypted Volume\")));\n}\n;\nMDXContent.isMDXComponent = true;","hero":{"full":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHZgvTS0aSf/8QAGRAAAwEBAQAAAAAAAAAAAAAAAAECBAMS/9oACAEBAAEFAvROh1I5TJz85Z//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwESf//EABcRAAMBAAAAAAAAAAAAAAAAAAEQEUH/2gAIAQIBAT8BE1f/xAAXEAEAAwAAAAAAAAAAAAAAAAAQADFh/9oACAEBAAY/AprR/8QAGhAAAgIDAAAAAAAAAAAAAAAAABEBITFRcf/aAAgBAQABPyFUxpa4GZWZGy8laP/aAAwDAQACAAMAAAAQx8//xAAXEQEAAwAAAAAAAAAAAAAAAAABEBEx/9oACAEDAQE/ECaXH//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxBgcT//xAAdEAEAAwACAwEAAAAAAAAAAAABABEhQZExUWGB/9oACAEBAAE/EA1bAuOlpoDHxieXeYKgRKQc6gAkGy1o/PEr0dT/2Q==","aspectRatio":1.5031847133757963,"src":"/static/fda7950a12ba48700feff72cbf7c2a95/58fe7/hero.jpg","srcSet":"/static/fda7950a12ba48700feff72cbf7c2a95/e0f30/hero.jpg 236w,\n/static/fda7950a12ba48700feff72cbf7c2a95/86afd/hero.jpg 472w,\n/static/fda7950a12ba48700feff72cbf7c2a95/58fe7/hero.jpg 944w,\n/static/fda7950a12ba48700feff72cbf7c2a95/02748/hero.jpg 1416w,\n/static/fda7950a12ba48700feff72cbf7c2a95/5c241/hero.jpg 1888w,\n/static/fda7950a12ba48700feff72cbf7c2a95/b8632/hero.jpg 5676w","srcWebp":"/static/fda7950a12ba48700feff72cbf7c2a95/99fbb/hero.webp","srcSetWebp":"/static/fda7950a12ba48700feff72cbf7c2a95/77392/hero.webp 236w,\n/static/fda7950a12ba48700feff72cbf7c2a95/1f177/hero.webp 472w,\n/static/fda7950a12ba48700feff72cbf7c2a95/99fbb/hero.webp 944w,\n/static/fda7950a12ba48700feff72cbf7c2a95/4a492/hero.webp 1416w,\n/static/fda7950a12ba48700feff72cbf7c2a95/b0b8f/hero.webp 1888w,\n/static/fda7950a12ba48700feff72cbf7c2a95/8b0ab/hero.webp 5676w","sizes":"(max-width: 944px) 100vw, 944px"},"regular":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHZgvTS0aSf/8QAGRAAAwEBAQAAAAAAAAAAAAAAAAECBAMS/9oACAEBAAEFAvROh1I5TJz85Z//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwESf//EABcRAAMBAAAAAAAAAAAAAAAAAAEQEUH/2gAIAQIBAT8BE1f/xAAXEAEAAwAAAAAAAAAAAAAAAAAQADFh/9oACAEBAAY/AprR/8QAGhAAAgIDAAAAAAAAAAAAAAAAABEBITFRcf/aAAgBAQABPyFUxpa4GZWZGy8laP/aAAwDAQACAAMAAAAQx8//xAAXEQEAAwAAAAAAAAAAAAAAAAABEBEx/9oACAEDAQE/ECaXH//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxBgcT//xAAdEAEAAwACAwEAAAAAAAAAAAABABEhQZExUWGB/9oACAEBAAE/EA1bAuOlpoDHxieXeYKgRKQc6gAkGy1o/PEr0dT/2Q==","aspectRatio":1.4954128440366972,"src":"/static/fda7950a12ba48700feff72cbf7c2a95/1dc0b/hero.jpg","srcSet":"/static/fda7950a12ba48700feff72cbf7c2a95/3a5ce/hero.jpg 163w,\n/static/fda7950a12ba48700feff72cbf7c2a95/05730/hero.jpg 327w,\n/static/fda7950a12ba48700feff72cbf7c2a95/1dc0b/hero.jpg 653w,\n/static/fda7950a12ba48700feff72cbf7c2a95/f72c7/hero.jpg 980w,\n/static/fda7950a12ba48700feff72cbf7c2a95/6e4a3/hero.jpg 1306w,\n/static/fda7950a12ba48700feff72cbf7c2a95/b8632/hero.jpg 5676w","srcWebp":"/static/fda7950a12ba48700feff72cbf7c2a95/0acdf/hero.webp","srcSetWebp":"/static/fda7950a12ba48700feff72cbf7c2a95/ac59e/hero.webp 163w,\n/static/fda7950a12ba48700feff72cbf7c2a95/7660b/hero.webp 327w,\n/static/fda7950a12ba48700feff72cbf7c2a95/0acdf/hero.webp 653w,\n/static/fda7950a12ba48700feff72cbf7c2a95/75470/hero.webp 980w,\n/static/fda7950a12ba48700feff72cbf7c2a95/68d47/hero.webp 1306w,\n/static/fda7950a12ba48700feff72cbf7c2a95/8b0ab/hero.webp 5676w","sizes":"(max-width: 653px) 100vw, 653px"},"narrow":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHZgvTS0aSf/8QAGRAAAwEBAQAAAAAAAAAAAAAAAAECBAMS/9oACAEBAAEFAvROh1I5TJz85Z//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwESf//EABcRAAMBAAAAAAAAAAAAAAAAAAEQEUH/2gAIAQIBAT8BE1f/xAAXEAEAAwAAAAAAAAAAAAAAAAAQADFh/9oACAEBAAY/AprR/8QAGhAAAgIDAAAAAAAAAAAAAAAAABEBITFRcf/aAAgBAQABPyFUxpa4GZWZGy8laP/aAAwDAQACAAMAAAAQx8//xAAXEQEAAwAAAAAAAAAAAAAAAAABEBEx/9oACAEDAQE/ECaXH//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxBgcT//xAAdEAEAAwACAwEAAAAAAAAAAAABABEhQZExUWGB/9oACAEBAAE/EA1bAuOlpoDHxieXeYKgRKQc6gAkGy1o/PEr0dT/2Q==","aspectRatio":1.5,"src":"/static/fda7950a12ba48700feff72cbf7c2a95/eaa58/hero.jpg","srcSet":"/static/fda7950a12ba48700feff72cbf7c2a95/5a3ee/hero.jpg 114w,\n/static/fda7950a12ba48700feff72cbf7c2a95/41f8f/hero.jpg 229w,\n/static/fda7950a12ba48700feff72cbf7c2a95/eaa58/hero.jpg 457w,\n/static/fda7950a12ba48700feff72cbf7c2a95/c309b/hero.jpg 686w,\n/static/fda7950a12ba48700feff72cbf7c2a95/e3008/hero.jpg 914w,\n/static/fda7950a12ba48700feff72cbf7c2a95/b8632/hero.jpg 5676w","srcWebp":"/static/fda7950a12ba48700feff72cbf7c2a95/15384/hero.webp","srcSetWebp":"/static/fda7950a12ba48700feff72cbf7c2a95/31fce/hero.webp 114w,\n/static/fda7950a12ba48700feff72cbf7c2a95/e3e25/hero.webp 229w,\n/static/fda7950a12ba48700feff72cbf7c2a95/15384/hero.webp 457w,\n/static/fda7950a12ba48700feff72cbf7c2a95/0258d/hero.webp 686w,\n/static/fda7950a12ba48700feff72cbf7c2a95/64ea2/hero.webp 914w,\n/static/fda7950a12ba48700feff72cbf7c2a95/8b0ab/hero.webp 5676w","sizes":"(max-width: 457px) 100vw, 457px"},"seo":{"src":"/static/fda7950a12ba48700feff72cbf7c2a95/0ff54/hero.jpg"}}}]}},"staticQueryHashes":["1143375668","1491088328","1921650733","2068910035","2444214635"]}