{"componentChunkName":"component---src-templates-blog-post-tsx","path":"/blog/2019/10/10/typescript-another-fading-youth","result":{"data":{"site":{"siteMetadata":{"title":"童话说","keywords":["thewashingtonhua","github","front-end","javascript","typescript","react","node","washington","hua","童话","童话说","前端","博客","技术","计算机","互联网"]}},"allMarkdownRemark":{"totalCount":84,"edges":[{"node":{"id":"899b40b6-931d-5582-8849-ad164824a190","frontmatter":{"title":"阿里云盘","description":"个人网盘","tags":null,"cover":{"publicURL":"/static/d42b88ce13a4592608ec8325f693ecb3/adrive.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"adrive","slug":"/project/adrive","type":"project","date":null}}},{"node":{"id":"a18d8b3f-fe18-59c1-bcc1-fcd84958e624","frontmatter":{"title":"FBC","description":"联合办公空间的会员服务","tags":null,"cover":{"publicURL":"/static/73b8b250e607c97c493edf1b542345fa/fbc.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"fbc","slug":"/project/fbc","type":"project","date":null}}},{"node":{"id":"8b0f2e60-5e93-590c-8f0b-fdb1f9b60f72","frontmatter":{"title":"Fridge","description":"设计资产速查工具","tags":null,"cover":{"publicURL":"/static/97b869f04b74e763be87e4369e4690e3/fridge.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"fridge","slug":"/project/fridge","type":"project","date":null}}},{"node":{"id":"d2e65cfa-f706-51de-a5af-b49346004338","frontmatter":{"title":"Github-Flutter","description":"基于 Flutter 的 Github 客户端","tags":null,"cover":{"publicURL":"/static/72e94c39ebb670dd23625675c0a22ace/blank.jpg"},"series":null,"draft":true,"original":null},"fields":{"id":"github-flutter","slug":"/project/github-flutter","type":"project","date":null}}},{"node":{"id":"130b94e2-4a4c-5ff6-bcdd-f583151f8e9a","frontmatter":{"title":"影力所","description":"数字货币交易所","tags":null,"cover":{"publicURL":"/static/40ff0dfa20bfd2e8e2b2ea8abb900b5b/inex.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"inex","slug":"/project/inex","type":"project","date":null}}},{"node":{"id":"d8972347-1404-5f3f-b52f-a96b5d18ad54","frontmatter":{"title":"CSS Scan","description":"VSCode 扩展，自动补全 CSS 变量","tags":null,"cover":{"publicURL":"/static/72e94c39ebb670dd23625675c0a22ace/blank.jpg"},"series":null,"draft":true,"original":null},"fields":{"id":"css-scan","slug":"/project/css-scan","type":"project","date":null}}},{"node":{"id":"1ef032fc-5cff-5d54-b043-5630c19726dd","frontmatter":{"title":"Teambition 网盘","description":"企业级网盘","tags":null,"cover":{"publicURL":"/static/a18be47f8ccb3a72f9a63b94e7e02a89/teamedia.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"teamedia","slug":"/project/teamedia","type":"project","date":null}}},{"node":{"id":"f939aecc-08da-5e52-be67-4204ba57a43f","frontmatter":{"title":"The Bookmark","description":"Chrome 书签管理器","tags":null,"cover":{"publicURL":"/static/72e94c39ebb670dd23625675c0a22ace/blank.jpg"},"series":null,"draft":true,"original":null},"fields":{"id":"the-bookmark","slug":"/project/the-bookmark","type":"project","date":null}}},{"node":{"id":"d1d07852-8bd0-5f2d-b71e-d581f89f6834","frontmatter":{"title":"The Renamer","description":"批量重命名文件","tags":null,"cover":{"publicURL":"/static/72e94c39ebb670dd23625675c0a22ace/blank.jpg"},"series":null,"draft":true,"original":null},"fields":{"id":"the-renamer","slug":"/project/the-renamer","type":"project","date":null}}},{"node":{"id":"69b8a9b0-5842-5f8a-af9e-7969ae9a52de","frontmatter":{"title":"The Favicon","description":"一站式 Favicon 解决方案","tags":null,"cover":{"publicURL":"/static/956c5d68ba30b313078082a832a80573/the-favicon.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"the-favicon","slug":"/project/the-favicon","type":"project","date":null}}},{"node":{"id":"e2e9ca5d-5451-5488-bbdb-95d2f726007d","frontmatter":{"title":"The Scanner","description":"可视化磁盘空间分析工具","tags":null,"cover":{"publicURL":"/static/72e94c39ebb670dd23625675c0a22ace/blank.jpg"},"series":null,"draft":true,"original":null},"fields":{"id":"the-scanner","slug":"/project/the-scanner","type":"project","date":null}}},{"node":{"id":"f9d819bd-ec6f-5208-babe-af3321b98849","frontmatter":{"title":"The Spoiler","description":"仿 QQ 影音「剧情连拍」","tags":null,"cover":{"publicURL":"/static/72e94c39ebb670dd23625675c0a22ace/blank.jpg"},"series":null,"draft":true,"original":null},"fields":{"id":"the-spoiler","slug":"/project/the-spoiler","type":"project","date":null}}},{"node":{"id":"03ce08e4-747a-593a-a4b6-c3f880063ba2","frontmatter":{"title":"Thoughts 所思","description":"可协同的在线富文本编辑器","tags":null,"cover":{"publicURL":"/static/faff3495c115cab9b6fd951f3c6b96f9/thoughts.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"thoughts","slug":"/project/thoughts","type":"project","date":null}}},{"node":{"id":"66e250ec-9f77-59c4-89ad-62de1da8af4f","frontmatter":{"title":"阅流","description":"音视频资产管理与协同工作流平台","tags":null,"cover":{"publicURL":"/static/9714ee2418af11ae8e80156b953176e5/yueliu.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"xinyue","slug":"/project/xinyue","type":"project","date":null}}},{"node":{"id":"96d8262a-1a3a-5d8d-927a-61a92af40bbb","frontmatter":{"title":"Xshowroom 买手圈","description":"时尚业专业买手服务平台","tags":null,"cover":{"publicURL":"/static/72ea2ae7921cb5aa0b3b4f56578ed2b9/xshowroom.jpg"},"series":null,"draft":false,"original":null},"fields":{"id":"xshowroom","slug":"/project/xshowroom","type":"project","date":null}}},{"node":{"id":"6f90759d-2425-5cd2-b498-b62726e30328","frontmatter":{"title":"基于 Monorepo 的项目架构","description":"分久必合","tags":["architecture","monorepo","架构"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/design-a-monorepo-project","slug":"/blog/blog/draft/design-a-monorepo-project","type":"blog","date":null}}},{"node":{"id":"ef1d93e7-33e6-5c26-8a0b-fcb475a4a7bd","frontmatter":{"title":"自己动手做一个播放器","description":"一潭看起来很浅的深水","tags":["media","video","audio"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/custom-media-player","slug":"/blog/blog/draft/custom-media-player","type":"blog","date":null}}},{"node":{"id":"cbeb2307-591f-54ae-8ff1-48f59949994d","frontmatter":{"title":"「童话说」又改版啦","description":"只为遇见更好的自己","tags":["blog","4.0","update"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/introducing-ths-v4","slug":"/blog/blog/draft/introducing-ths-v4","type":"blog","date":null}}},{"node":{"id":"629e72b7-0c5b-5119-a4eb-2117f81c1c74","frontmatter":{"title":"让你的 Electron 应用更像原生","description":"青出于蓝，就得够蓝","tags":["electron"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/make-electron-app-like-native","slug":"/blog/blog/draft/make-electron-app-like-native","type":"blog","date":null}}},{"node":{"id":"d268eb02-e779-5455-920f-246feac07c7e","frontmatter":{"title":"聊聊前端架构","description":"前端如果只是写写页面的话，路就走窄了","tags":["architecture","架构"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/frontend-architecture","slug":"/blog/blog/draft/frontend-architecture","type":"blog","date":null}}},{"node":{"id":"831f0b6d-239a-57bc-9df2-9515c8033613","frontmatter":{"title":"Fridge 背后的故事","description":"能动手的，咱们尽量别吵吵","tags":["electron","iconfont","svg","fridge"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/story-behind-fridge","slug":"/blog/blog/draft/story-behind-fridge","type":"blog","date":null}}},{"node":{"id":"f7b25b63-8a8f-5c85-8d99-e6513c498f70","frontmatter":{"title":"多端 Web 应用实践","description":"去往梦想的路，总是坑坑洼洼的","tags":["cross-platform"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/web-cross-platform-in-action","slug":"/blog/blog/draft/web-cross-platform-in-action","type":"blog","date":null}}},{"node":{"id":"06f78e85-6919-5c8b-acd3-87868117a0b8","frontmatter":{"title":"当我想要复用一些代码时","description":"懒惰真的是人类进步的最大动力","tags":["npm","monorepo","design pattern"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/when-i-want-to-reuse-some-code","slug":"/blog/blog/draft/when-i-want-to-reuse-some-code","type":"blog","date":null}}},{"node":{"id":"e48043ee-92d6-5f14-a21e-25316a24d6fc","frontmatter":{"title":"为什么我们总是在不断地造轮子","description":"圆的圆的圆的东西","tags":["thinking"],"cover":{"publicURL":"/static/120fefa8e824de66889cf2e45b746ebe/wheel.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"blog/draft/why-do-we-keep-building-wheels","slug":"/blog/blog/draft/why-do-we-keep-building-wheels","type":"blog","date":null}}},{"node":{"id":"235647b7-ab40-5666-8a43-5e3f0b84bc15","frontmatter":{"title":"金三银四，聊聊前端面试","description":"人嘛，总是在不断的试错中成长起来的","tags":["interview"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"thoughts-about-fe-interview","slug":"/blog/2022/03/01/thoughts-about-fe-interview","type":"blog","date":"2022-03-01"}}},{"node":{"id":"8605b9b5-c87c-561f-b9c5-eae2b52d86c1","frontmatter":{"title":"聊聊「深色模式」","description":"你说的黑不是黑，你说的暗是什么暗","tags":["design","dark"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"dark-mode","slug":"/blog/2021/11/30/dark-mode","type":"blog","date":"2021-11-30"}}},{"node":{"id":"a8057f61-f41c-59b9-a6f0-20e928096314","frontmatter":{"title":"日志 - 软件系统的黑匣子","description":"前端如果只是写写页面的话，路就走窄了","tags":["log","日志"],"cover":{"publicURL":"/static/d221320d45d5d7ac530fe7af1ab4cd79/blank.jpg"},"series":"","draft":true,"original":true},"fields":{"id":"log-black-box-for-software","slug":"/blog/2021/12/27/log-black-box-for-software","type":"blog","date":"2021-12-27"}}},{"node":{"id":"78accc1d-9509-5bb3-9dc5-f47e1f336faf","frontmatter":{"title":"设计一套乐观更新机制","description":"做人呐，最重要的就是乐观啦","tags":["design","optimistic","update"],"cover":{"publicURL":"/static/92603cdac7e5c420caea18ea2c459646/optimistic-update.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"building-an-optimisic-update-mechanism","slug":"/blog/2020/07/13/building-an-optimisic-update-mechanism","type":"blog","date":"2020-07-13"}}},{"node":{"id":"f8010292-2ae9-55e9-8dc1-b161e1ed0e8e","frontmatter":{"title":"我的数组返回了啥","description":"功夫再高，一针下去也得倒","tags":["javascript","array"],"cover":{"publicURL":"/static/2cc085eb3cdf21f44644810589c3bd8a/array.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"what-does-my-array-return","slug":"/blog/2020/12/07/what-does-my-array-return","type":"blog","date":"2020-12-07"}}},{"node":{"id":"cce39a0a-715e-52b1-9ffc-4bedcaa986f3","frontmatter":{"title":"一个非著名前端开发者的 2020","description":"继续，让进步发生","tags":["summary","2020","2021"],"cover":{"publicURL":"/static/40556f5636111e701f3949914488b854/summary-2020.jpg"},"series":"summary","draft":false,"original":true},"fields":{"id":"summary-2020","slug":"/blog/2020/12/31/summary-2020","type":"blog","date":"2020-12-31"}}},{"node":{"id":"3a2d2bcd-1ecc-5974-9394-efb756f1f1a9","frontmatter":{"title":"你铁定已经知道的 ES 2020","description":"迟到，总比不到好","tags":["ecmascript","2020"],"cover":{"publicURL":"/static/5bbe9cbd4d341256fe533f89aa242cb6/es2020.jpg"},"series":"ecmascript","draft":false,"original":true},"fields":{"id":"es-2020","slug":"/blog/2020/12/28/es-2020","type":"blog","date":"2020-12-28"}}},{"node":{"id":"a2307fdb-e855-5054-bb5c-5afcd8b4486b","frontmatter":{"title":"除了 SSR，就没有别的办法了吗","description":"当 MVVM 遇上 SEO，该如何是好","tags":["static","site","gatsby","pug"],"cover":{"publicURL":"/static/c2ac5cf49eafd77a1b2ce1fab7f53515/explore-static-site-generation.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"explore-static-site-generation","slug":"/blog/2019/02/07/explore-static-site-generation","type":"blog","date":"2019-02-07"}}},{"node":{"id":"1c714ef9-56d1-5ce8-aa92-ad38fb776c27","frontmatter":{"title":"你可能已经知道的 ES 2018 和 2019","description":"好饭不怕晚","tags":["ecmascript","2018","2019"],"cover":{"publicURL":"/static/5646b4878e533cd7c725ce4c17984071/es2019.jpg"},"series":"ecmascript","draft":false,"original":true},"fields":{"id":"es2018-and-es2019","slug":"/blog/2019/02/11/es2018-and-es2019","type":"blog","date":"2019-02-11"}}},{"node":{"id":"36b1a9b7-cbb3-5603-8b82-4d208c3b8a90","frontmatter":{"title":"【译】我们为什么要写 super(props)?","description":"好像知道，又好像不知道","tags":["react"],"cover":{"publicURL":"/static/9fbf74366dc5b9e4aab57572a9f0470d/overreacted.jpg"},"series":"overreacted","draft":false,"original":false},"fields":{"id":"why-do-we-write-super-props","slug":"/blog/2019/02/22/why-do-we-write-super-props","type":"blog","date":"2019-02-22"}}},{"node":{"id":"60328fae-7371-5510-8f73-e804ed636097","frontmatter":{"title":"如何 Think in Hooks","description":"差不多是时候该换换脑子了","tags":["react","hooks"],"cover":{"publicURL":"/static/26d13ef2591ee05a3c4bba7fc34daa88/think-in-hooks.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"how-to-think-in-hooks","slug":"/blog/2019/02/15/how-to-think-in-hooks","type":"blog","date":"2019-02-15"}}},{"node":{"id":"cee0c8aa-e571-5394-a0fa-84dedb9bd3c0","frontmatter":{"title":"【译】React 如何区分 Class 和 Function？","description":"所谓的简单，只是因为有人帮你把复杂的问题给解决掉了","tags":["react"],"cover":{"publicURL":"/static/9fbf74366dc5b9e4aab57572a9f0470d/overreacted.jpg"},"series":"overreacted","draft":false,"original":false},"fields":{"id":"how-does-react-tell-a-class-from-a-function","slug":"/blog/2019/03/06/how-does-react-tell-a-class-from-a-function","type":"blog","date":"2019-03-06"}}},{"node":{"id":"1bd98cff-a13f-5d96-a821-4e8b172460f2","frontmatter":{"title":"探索 React 组件之间的生命周期","description":"有时候，生活就是一团麻","tags":["react","lifecycle"],"cover":{"publicURL":"/static/0edf69056144aaf512a28d0670b53b57/react-lifecycle.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"react-lifecycle","slug":"/blog/2019/05/02/react-lifecycle","type":"blog","date":"2019-05-02"}}},{"node":{"id":"4d37b609-e7b3-544a-9c20-f50ace245da1","frontmatter":{"title":"TypeScript 次日指南","description":"坑这种东西，是不会写在文档上的","tags":["typescript"],"cover":{"publicURL":"/static/8239307adc5ccdfc32320e1bcadb6300/typescript.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"typescript-the-second-day","slug":"/blog/2019/07/28/typescript-the-second-day","type":"blog","date":"2019-07-28"}}},{"node":{"id":"1bca0d32-a7ee-5439-a55f-9d75e9426eb1","frontmatter":{"title":"重新 Think in Hooks","description":"忘记过去之所学，我们从头来过","tags":["react","hooks"],"cover":{"publicURL":"/static/f9fcd719dcab55af4a1ad3d3cfbe0585/rethink-in-hooks.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"rethink-in-hooks","slug":"/blog/2019/05/27/rethink-in-hooks","type":"blog","date":"2019-05-27"}}},{"node":{"id":"38745745-24e5-5fd0-b893-a81ccdeed4e8","frontmatter":{"title":"TypeScript：又一个终将逝去的青春","description":"你，轰轰烈烈地来；你，平平淡淡地走。","tags":["typescript"],"cover":{"publicURL":"/static/b7b7642447ca6a5b28abf9f90bf06ef8/typescript-another-fading-youth.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"typescript-another-fading-youth","slug":"/blog/2019/10/10/typescript-another-fading-youth","type":"blog","date":"2019-10-10"}}},{"node":{"id":"1b946c8e-4515-5f6a-bff0-9d63a338fca9","frontmatter":{"title":"Homebrew 也有后悔药：回退一次小版本更新","description":"有了后悔药，可劲随便造","tags":["homebrew"],"cover":{"publicURL":"/static/2cd1cc709ca5d68b1a1fb9eb6283b820/homebrew.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"how-to-downgrade-from-homebrew","slug":"/blog/2019/10/11/how-to-downgrade-from-homebrew","type":"blog","date":"2019-10-11"}}},{"node":{"id":"b5e8773f-6dff-512b-98df-725d27df8f4f","frontmatter":{"title":"每天一点ES6(14)：Iterator","description":"遍历也能搞出花来，怎么遍历你说了算","tags":["ecmascript","2015","es6","javascript","iterator","generator"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-14-iterator","slug":"/blog/2018/02/28/es6-daily-14-iterator","type":"blog","date":"2018-02-28"}}},{"node":{"id":"e4cb7abe-3cde-5832-a981-7128e5c0d895","frontmatter":{"title":"一个非著名前端开发者的 2019","description":"感谢曾经努力的自己","tags":["summary","2019","2020"],"cover":{"publicURL":"/static/1011f23d2ed2635035a07878c03ed1da/summary-2019.jpg"},"series":"summary","draft":false,"original":true},"fields":{"id":"summary-2019","slug":"/blog/2019/12/31/summary-2019","type":"blog","date":"2019-12-31"}}},{"node":{"id":"ce78757a-076a-5b89-9be0-9ac597211f81","frontmatter":{"title":"每天一点ES6(15)：Promise","description":"对你的承诺，永远不变","tags":["ecmascript","2015","es6","javascript","promise"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-15-promise","slug":"/blog/2018/03/04/es6-daily-15-promise","type":"blog","date":"2018-03-04"}}},{"node":{"id":"4768bfd5-810a-597a-b108-4478ae7b0c62","frontmatter":{"title":"每天一点ES6(16)：Generator","description":"一起来摩擦摩擦发电吧","tags":["ecmascript","2015","es6","javascript","promise"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-16-generator","slug":"/blog/2018/06/14/es6-daily-16-generator","type":"blog","date":"2018-06-14"}}},{"node":{"id":"f06b7a4d-10f9-5a92-be83-9e703c97b24a","frontmatter":{"title":"每天一点ES6(17)：Async / Await","description":"异步？先等等！","tags":["ecmascript","2015","es6","javascript","async","await","generator"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-17-async-await","slug":"/blog/2018/10/06/es6-daily-17-async-await","type":"blog","date":"2018-10-06"}}},{"node":{"id":"1459c3df-c925-54f1-b807-e4a212f2c4bd","frontmatter":{"title":"每天一点ES6(18)：Class","description":"这回总没人质疑 JS 不是面向对象了吧？","tags":["ecmascript","2015","es6","javascript","class"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-18-class","slug":"/blog/2018/12/17/es6-daily-18-class","type":"blog","date":"2018-12-17"}}},{"node":{"id":"ab6648bb-2a63-5907-9644-5bb1c03f3d13","frontmatter":{"title":"每天一点ES6(19)：Module","description":"可能是 ES6 中对未来影响最大的一项改变","tags":["ecmascript","2015","es6","javascript","module","import","export"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-19-module","slug":"/blog/2018/12/19/es6-daily-19-module","type":"blog","date":"2018-12-19"}}},{"node":{"id":"acaadd98-c9a3-5f8d-8592-9eb580993d5a","frontmatter":{"title":"解决 macOS 下 MySQL 2002 错误","description":"MySQL 真是个磨人的小妖精","tags":["mac","mysql","2002"],"cover":{"publicURL":"/static/6f1abf9c085f6538df6bced86e008157/mysql-error-2002.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"mysql-error-2002","slug":"/blog/2017/02/07/mysql-error-2002","type":"blog","date":"2017-02-07"}}},{"node":{"id":"2980c140-8128-583c-b715-00c459639f74","frontmatter":{"title":"TradingView + WebSocket 脱坑指南","description":"让我来告诉你，K 线到底该怎么画","tags":["tradingview","chart","library","guide","websocket","webworker","ohlc","kchart"],"cover":{"publicURL":"/static/1ceaf53d99815784a18273970e741bfd/tradingview.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"tradingview-charting-library-simple-guide","slug":"/blog/2018/09/22/tradingview-charting-library-simple-guide","type":"blog","date":"2018-09-22"}}},{"node":{"id":"a320306e-d8c5-57d0-bccd-65654be47ebe","frontmatter":{"title":"记 new Date().toString() 的一个坑","description":"万万没想到，竟在这里踩了个坑……","tags":["javascript","date","tostring"],"cover":{"publicURL":"/static/e192283893c7e97feb631571134bb805/date-tostring.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"a-pit-in-date-tostring","slug":"/blog/2017/03/08/a-pit-in-date-tostring","type":"blog","date":"2017-03-08"}}},{"node":{"id":"675cdc47-ff83-5d54-b1f6-9eb1ab727257","frontmatter":{"title":"一个非著名前端开发者的 2018","description":"资本寒冬大概是属燕子的吧，一到年末出现","tags":["summary","2018","2019"],"cover":{"publicURL":"/static/0e9c38c3d5d6b94d53a8dee2a7bdfbae/summary-2018.jpg"},"series":"summary","draft":false,"original":true},"fields":{"id":"summary-2018","slug":"/blog/2018/12/31/summary-2018","type":"blog","date":"2018-12-31"}}},{"node":{"id":"3d497cac-d699-51f6-a002-70934f8f6885","frontmatter":{"title":"iOS 下 click() 无效的问题","description":"iOS这个傲娇的小公举","tags":["ios","click"],"cover":{"publicURL":"/static/f79051a5758b8a973902b2e5d190b714/ios-click.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"unable-to-trigger-click-on-ios","slug":"/blog/2017/03/31/unable-to-trigger-click-on-ios","type":"blog","date":"2017-03-31"}}},{"node":{"id":"48340073-afd2-514f-94c7-db3af2dc5796","frontmatter":{"title":"每天一点ES6(10)：对象的扩展","description":"迟来的更新……","tags":["ecmascript","2015","es6","javascript","object"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-10-object","slug":"/blog/2017/04/05/es6-daily-10-object","type":"blog","date":"2017-04-05"}}},{"node":{"id":"870a098a-b7e9-5ed2-bef5-f04a6b9f451f","frontmatter":{"title":"Leetcode 第一刷：Two Sum","description":"都闪开，我要开始装逼了","tags":["leetcode","two","sum"],"cover":{"publicURL":"/static/1aa86b8eea674fca29117e535cfba751/leetcode.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"leetcode-01-two-sum","slug":"/blog/2017/04/11/leetcode-01-two-sum","type":"blog","date":"2017-04-11"}}},{"node":{"id":"9d030bff-d2d5-56ca-8bd6-4f994f728eee","frontmatter":{"title":"PHP 处理多源 CORS 的解决办法","description":"一个老生常谈的话题，碰到了顺便记录一下","tags":["php","cors"],"cover":{"publicURL":"/static/77fc63594cf3a06c31921df671acd258/cors.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"multi-origin-cors-with-php","slug":"/blog/2017/03/30/multi-origin-cors-with-php","type":"blog","date":"2017-03-30"}}},{"node":{"id":"6d2ed849-7eaf-57bb-b08e-89dc9bab9ce0","frontmatter":{"title":"每天一点ES6(11)：Symbol","description":"原始类型家族的新成员","tags":["ecmascript","2015","es6","javascript","symbol"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-11-symbol","slug":"/blog/2017/07/02/es6-daily-11-symbol","type":"blog","date":"2017-07-02"}}},{"node":{"id":"070c2a8f-3033-5739-a1ff-0e54e104f1a6","frontmatter":{"title":"Webpack \"Invalid Host Header\"","description":"更新有风险，更新需谨慎……","tags":["webpack","dev","server","invalid","host"],"cover":{"publicURL":"/static/977bc2ebe23a9b6b10fdac4b470847b8/webpack-dev-server.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"webpack-dev-server-invalid-host-header","slug":"/blog/2017/05/04/webpack-dev-server-invalid-host-header","type":"blog","date":"2017-05-04"}}},{"node":{"id":"0ab1e422-9e2e-585d-8aee-2273e0715029","frontmatter":{"title":"每天一点ES6(12)：Set 和 Map","description":"多余的，一概不要","tags":["ecmascript","2015","es6","javascript","map","set"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-12-set-and-map","slug":"/blog/2017/07/03/es6-daily-12-set-and-map","type":"blog","date":"2017-07-03"}}},{"node":{"id":"49b0f445-7cbd-5d20-86a3-dff801ff11ef","frontmatter":{"title":"Electron 安装出坑指南","description":"世界本无坑，用的人多了，也就有了坑","tags":["electron"],"cover":{"publicURL":"/static/a9838665d68ab68d327e48d8720bac3f/electron.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"electron-install-guide","slug":"/blog/2017/07/06/electron-install-guide","type":"blog","date":"2017-07-06"}}},{"node":{"id":"af03b8b2-0679-5776-a6ee-2dcb39f7aec6","frontmatter":{"title":"ECMAScript 2017 正式到来","description":"ES 的世界开始日趋平静","tags":["ecmascript","2017","es8","javascript"],"cover":{"publicURL":"/static/77b7677386d27526bcb0b2687218f3f1/es2017.jpg"},"series":"ecmascript","draft":false,"original":true},"fields":{"id":"ecmascript-2017-is-here","slug":"/blog/2017/07/12/ecmascript-2017-is-here","type":"blog","date":"2017-07-12"}}},{"node":{"id":"1f254d7c-060e-52f9-af37-6824c1f0fe89","frontmatter":{"title":"童话说 V2.0 改版小结","description":"时隔多年，终于换新面貌了","tags":["blog","2.0","update"],"cover":{"publicURL":"/static/630ee6fc7ad1be564eebffb0e0dd447d/introducing-ths-v2.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"introducing-ths-v2","slug":"/blog/2017/08/12/introducing-ths-v2","type":"blog","date":"2017-08-12"}}},{"node":{"id":"31e80902-e1a3-5bb7-a308-d7d01f260331","frontmatter":{"title":"TypeScript + Vue 踩坑纪实","description":"坑这种东西，多踩踩就平了","tags":["typescript","vue"],"cover":{"publicURL":"/static/fe6f5086d26293f21adf217a84141fd6/guide-for-vue-with-typescript.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"guide-for-vue-with-typescript","slug":"/blog/2017/10/26/guide-for-vue-with-typescript","type":"blog","date":"2017-10-26"}}},{"node":{"id":"1dcfd3d2-d775-5454-815d-2f289e2088b3","frontmatter":{"title":"Node.js 9.0.0 发布","description":"一转眼，又半年过去了","tags":["nodejs","release"],"cover":{"publicURL":"/static/86f3115cebbb8dd82646ff1d231fa317/nodejs-9-release.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"nodejs-9-release","slug":"/blog/2017/11/01/nodejs-9-release","type":"blog","date":"2017-11-01"}}},{"node":{"id":"479d9be7-97d4-5482-aab6-90a9b33052f9","frontmatter":{"title":"每天一点ES6(13)：Proxy 和 Reflect","description":"对不起，有代理真就是可以为所欲为","tags":["ecmascript","2015","es6","javascript","proxy","reflect"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-13-proxy-and-reflect","slug":"/blog/2017/12/20/es6-daily-13-proxy-and-reflect","type":"blog","date":"2017-12-20"}}},{"node":{"id":"ba0a8dc4-e229-5632-9024-5a19823848f4","frontmatter":{"title":"每天一点ES6(1)：概述","description":"伊艾斯6大法好，每天一点不会老！","tags":["ecmascript","2015","es6","javascript"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-01-intro","slug":"/blog/2016/01/24/es6-daily-01-intro","type":"blog","date":"2016-01-24"}}},{"node":{"id":"3d9678b9-4055-5296-8dad-32f261af39e3","frontmatter":{"title":"一个非著名前端开发者的 2017","description":"哎 ~ 又一年过去了","tags":["summary","2017","2018"],"cover":{"publicURL":"/static/0d96380257d25f6b398d9bc8e47af5a1/summary-2017.jpg"},"series":"summary","draft":false,"original":true},"fields":{"id":"summary-2017","slug":"/blog/2017/12/29/summary-2017","type":"blog","date":"2017-12-29"}}},{"node":{"id":"feaa4abe-dead-5b26-aafd-2ba664077e0a","frontmatter":{"title":"每天一点ES6(2)：let 和 const","description":"终于，JavaScript 也能用上块级作用域和常量了","tags":["ecmascript","2015","es6","javascript","let","const"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-02-let-and-const","slug":"/blog/2016/01/25/es6-daily-02-let-and-const","type":"blog","date":"2016-01-25"}}},{"node":{"id":"bad38d10-8840-5d4a-b8ee-7307eca7ff5f","frontmatter":{"title":"电梯调度算法","description":"上上下下的感受","tags":["elevator","algorithm","project"],"cover":{"publicURL":"/static/7b7f4cefe4c7bf293ff2cdb266af33d9/elevator.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"elevator","slug":"/blog/2016/02/16/elevator","type":"blog","date":"2016-02-16"}}},{"node":{"id":"431e4dd2-8cc9-5f84-b84b-c4c1eabd3b09","frontmatter":{"title":"每天一点ES6(3)：解构赋值","description":"让你一次赋个够","tags":["ecmascript","2015","es6","javascript","destructuring"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-03-destructuring","slug":"/blog/2016/02/02/es6-daily-03-destructuring","type":"blog","date":"2016-02-02"}}},{"node":{"id":"78a4c0f1-f9a4-5abe-9fb0-fa0bdd0559f0","frontmatter":{"title":"每天一点ES6(4)：Babel","description":"《圣经》的光辉，永恒！","tags":["ecmascript","2015","es6","javascript","babel","npm"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-04-babel","slug":"/blog/2016/02/19/es6-daily-04-babel","type":"blog","date":"2016-02-19"}}},{"node":{"id":"d951db07-68df-59f9-9cee-c441a69a70e3","frontmatter":{"title":"每天一点ES6(5)：字符串的扩展","description":"不变的字符串现在更加多变了","tags":["ecmascript","2015","es6","javascript","string"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-05-string","slug":"/blog/2016/04/05/es6-daily-05-string","type":"blog","date":"2016-04-05"}}},{"node":{"id":"140d4f03-33ff-5c2f-bc34-f3db45e4af68","frontmatter":{"title":"每天一点ES6(6)：正则的扩展","description":"四字节 Unicode 的春天","tags":["ecmascript","2015","es6","javascript","regular","expression","regexp"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-06-regexp","slug":"/blog/2016/04/06/es6-daily-06-regexp","type":"blog","date":"2016-04-06"}}},{"node":{"id":"42c4dde9-d4c0-508a-bed0-070004ef8069","frontmatter":{"title":"每天一点ES6(7)：数值的扩展","description":"每一个数字都不能放过","tags":["ecmascript","2015","es6","javascript","number"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-07-number","slug":"/blog/2016/04/12/es6-daily-07-number","type":"blog","date":"2016-04-12"}}},{"node":{"id":"f9ed5267-cb6b-5bec-9610-b1e9f8e8ebc0","frontmatter":{"title":"每天一点ES6(8)：数组的扩展","description":"别拿语法糖不当干粮","tags":["ecmascript","2015","es6","javascript","array"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-08-array","slug":"/blog/2016/07/26/es6-daily-08-array","type":"blog","date":"2016-07-26"}}},{"node":{"id":"ab0b546a-515e-504e-92f2-5bc12544ed39","frontmatter":{"title":"每天一点ES6(9)：函数的扩展","description":"博采众长的实用语法糖","tags":["ecmascript","2015","es6","javascript","function"],"cover":{"publicURL":"/static/0950334fb8899f1006423341cbfeecb9/es6daily.jpg"},"series":"es6daily","draft":false,"original":true},"fields":{"id":"es6-daily-09-function","slug":"/blog/2016/12/20/es6-daily-09-function","type":"blog","date":"2016-12-20"}}},{"node":{"id":"4da7c54c-1654-5479-8d6b-ce27531ec6ea","frontmatter":{"title":"5 分钟彻底明白 JSONP","description":"说穿了，其实没那么难","tags":["javascript","jsonp"],"cover":{"publicURL":"/static/f8f2d118b15646398f7d00e19eb17ff9/jsonp.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"jsonp","slug":"/blog/2016/08/17/jsonp","type":"blog","date":"2016-08-17"}}},{"node":{"id":"2b011eae-b89b-5d41-9cf1-15025c9a6117","frontmatter":{"title":"一个非著名前端开发者的 2016","description":"回顾 2016，是充实的一年，不负青春。2017 加油继续！","tags":["summary","2016","2017"],"cover":{"publicURL":"/static/d4bc85d6ff1aa8985e03c3875f90ea51/summary-2016.jpg"},"series":"summary","draft":false,"original":true},"fields":{"id":"summary-2016","slug":"/blog/2016/12/31/summary-2016","type":"blog","date":"2016-12-31"}}},{"node":{"id":"fa129fb7-cea0-54ef-97d9-2cd0e7dc435f","frontmatter":{"title":"栈计算器","description":"通过“栈”实现的方程式计算器","tags":["stack","calculator","algorithm","project"],"cover":{"publicURL":"/static/256bbf9439e7f58974c946bc16f54832/stack-calculator.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"stack-calculator","slug":"/blog/2015/02/10/stack-calculator","type":"blog","date":"2015-02-10"}}},{"node":{"id":"481787e1-0e84-58ba-932e-7c6584b7ea7c","frontmatter":{"title":"时间是什么颜色的","description":"如果时间有颜色……","tags":["color","time","project"],"cover":{"publicURL":"/static/03c874556dd31d9db5f30b7609751b92/tik-tok-color.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"tik-tok-color","slug":"/blog/2015/02/11/tik-tok-color","type":"blog","date":"2015-02-11"}}},{"node":{"id":"94f6b895-88ca-521e-8647-c0df5f922670","frontmatter":{"title":"使用 Sublime Text 编写 LaTeX","description":"用你最熟悉的工具来写 LaTeX 吧","tags":["sublime","latex"],"cover":{"publicURL":"/static/e7689b7e9fe6160a6ed614a10125ca29/latex-with-sublime-text.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"latex-with-sublime-text","slug":"/blog/2015/04/01/latex-with-sublime-text","type":"blog","date":"2015-04-01"}}},{"node":{"id":"bb0d4469-c33f-5b65-9dce-b9eaa84033a7","frontmatter":{"title":"MIUI 图标缓存问题","description":"离奇失踪的图标","tags":["android","miui","icon","cache"],"cover":{"publicURL":"/static/2e66c31a61d5319c1849ea082e8c80ee/miui-icon-cache.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"miui-icon-cache","slug":"/blog/2015/04/18/miui-icon-cache","type":"blog","date":"2015-04-18"}}},{"node":{"id":"eae3570c-3509-5e64-bd53-a1ce138da4e5","frontmatter":{"title":"纯 CSS3 绘制月饼","description":"中秋佳节，用CSS3来画个月饼吧","tags":["css","mooncake","project"],"cover":{"publicURL":"/static/9aaefaae86216c79623893c080f1ccc2/css3-mooncake.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"css3-mooncake","slug":"/blog/2015/09/27/css3-mooncake","type":"blog","date":"2015-09-27"}}},{"node":{"id":"b1595fb6-f219-5181-8272-64ed2e1efd07","frontmatter":{"title":"substr() 和 substring() 的区别","description":"两个函数，傻傻分不清楚","tags":["javascript","substr","substring","slice"],"cover":{"publicURL":"/static/289ad52fc38963e15549cd1dc24678e4/substring.jpg"},"series":"","draft":false,"original":true},"fields":{"id":"substr-and-substring","slug":"/blog/2015/05/15/substr-and-substring","type":"blog","date":"2015-05-15"}}}]},"markdownRemark":{"id":"38745745-24e5-5fd0-b893-a81ccdeed4e8","html":"<h1>硬币的另一面</h1>\n<p>TypeScript 真的是太火了，伴随着 Vue 3 的登场，三大框架全面支持 TypeScript，全民学习 TypeScript 迎来新一波热潮，娱乐圈正式进入 TypeScript 新时代。</p>\n<p>回头一看，娱乐圈像这样的头条还真不在少数，Flutter、微信小程序、ES6 …… 再往前就不说了，太多了。每一个都曾引起过一阵全民学习的狂潮，感觉学了就能走向巅峰，不学就完了。</p>\n<p>关注新技术的诞生，是每个有追求的开发者应该做的。但这一篇，我却想谈谈硬币的另一面。</p>\n<h1>英雄末路</h1>\n<p>在人家最火的时候，来这么一下，难不成是在故意唱反调，博眼球吗？</p>\n<p>作为 TypeScript 早期实践者中的一员，浪潮初到时我也曾为之激动过，也正因为如此，当后浪来临时，我反而非常淡定，开始看向新的远方。</p>\n<p>优胜劣汰，物竞天择，大自然的法则谁也逃不过。有诞生，就有毁灭，再火热的技术，也终将退休。</p>\n<p>上一个因为退休而被热议的技术，应该是 jQuery 了吧。jQuery 年轻时有多火不用多说，如今廉颇老矣，虽尚能饭，但世人却依然给了它一个大大的「否」字。不是 jQuery 不行了，只是行业发展了，不再需要它了。</p>\n<p>回顾历史，这样的故事，其实一直在上演。</p>\n<h1>历史总是惊人的相似</h1>\n<p>人们想要一致的 API 来操作 DOM，于是创造出了 jQuery。后来 DOM API 越发标准，jQuery 也就逐渐淡出了人们的视野。</p>\n<p>人们想要好用的语法特性，于是创造出了 CoffeeScript。后来 ES 2015 标准发布，CoffeeScript 的存在感一天不如一天。</p>\n<p>人们想要在客户端也能有良好的模块化支持，于是创造出了 AMD/CMD/UMD 等方案。后来 ESM 成为了主流，就没人再谈这些了。</p>\n<p>现在，人们想要类型推断了 ……</p>\n<h1>命中注定是个备胎</h1>\n<p>昔日英雄，都不过是备胎罢了，需要时发展一个，用不着了就丢掉，标准才是永远的正宫。听上去很惋惜，但这都是大自然的常规操作。</p>\n<p>行业需要什么，从业者就会去创造什么，行业从中受益得到发展。行业发展了，曾经的创造不再被需要，日渐被遗忘，最后彻底退出。</p>\n<h1>35 岁这个哏</h1>\n<p>每年，都有一批 35 岁左右的互联网从业者光荣退休。有人抱怨企业过河拆桥，但毕竟资本是嗜血的，企业是以赚钱为目的的，大家只是利益驱使下的雇佣关系，而已。一方需要能力，一方提供能力，一纸合同，开干。</p>\n<p>从这一点看，人和技术都是一样的。行业的走向、企业的需求、开发者的年龄，开发者的能力，这些都是变量。前面 3 种变化都是被动的，不管我们接不接受，该变的都会变，唯有技能，是我们可以控制的。当我们的能力，能够顺应行业的走向，能够满足企业的需求，年龄就成了无关变量，否则，它就可能成为一个「温柔的借口」。</p>\n<h1>终将逝去的青春</h1>\n<p>现在整个前端圈都已经接受了「静态类型系统」这么个东西，一个库如果无法提供良好的类型定义甚至会因此被嫌弃。当一项非标准的技术成为了事实上的标准，那么它距离成为真正的标准也就不远了。剩下的，或许只是时间的问题。</p>\n<p>届时，TypeScript 或许也会逐渐消失，成为一代人的记忆，被后世所遗忘。</p>\n<p>青春终将逝去，技术也是一样。来时，我们为之狂热，去时，我们为之惋惜。</p>\n<p>若干年后，当后辈们再次踏上这条征途，他们的起点，或许就已经不同以往：</p>\n<p>「JavaScript —— 一门静态类型语言」</p>","frontmatter":{"title":"TypeScript：又一个终将逝去的青春","description":"你，轰轰烈烈地来；你，平平淡淡地走。","cover":{"publicURL":"/static/b7b7642447ca6a5b28abf9f90bf06ef8/typescript-another-fading-youth.jpg"},"tags":["typescript"],"series":"","draft":false},"fields":{"id":"typescript-another-fading-youth","date":"2019-10-10"},"headings":[{"value":"硬币的另一面","depth":1},{"value":"英雄末路","depth":1},{"value":"历史总是惊人的相似","depth":1},{"value":"命中注定是个备胎","depth":1},{"value":"35 岁这个哏","depth":1},{"value":"终将逝去的青春","depth":1}],"tableOfContents":"<ul>\n<li><a href=\"/blog/2019/10/10/typescript-another-fading-youth/#%E7%A1%AC%E5%B8%81%E7%9A%84%E5%8F%A6%E4%B8%80%E9%9D%A2\">硬币的另一面</a></li>\n<li><a href=\"/blog/2019/10/10/typescript-another-fading-youth/#%E8%8B%B1%E9%9B%84%E6%9C%AB%E8%B7%AF\">英雄末路</a></li>\n<li><a href=\"/blog/2019/10/10/typescript-another-fading-youth/#%E5%8E%86%E5%8F%B2%E6%80%BB%E6%98%AF%E6%83%8A%E4%BA%BA%E7%9A%84%E7%9B%B8%E4%BC%BC\">历史总是惊人的相似</a></li>\n<li><a href=\"/blog/2019/10/10/typescript-another-fading-youth/#%E5%91%BD%E4%B8%AD%E6%B3%A8%E5%AE%9A%E6%98%AF%E4%B8%AA%E5%A4%87%E8%83%8E\">命中注定是个备胎</a></li>\n<li><a href=\"/blog/2019/10/10/typescript-another-fading-youth/#35-%E5%B2%81%E8%BF%99%E4%B8%AA%E5%93%8F\">35 岁这个哏</a></li>\n<li><a href=\"/blog/2019/10/10/typescript-another-fading-youth/#%E7%BB%88%E5%B0%86%E9%80%9D%E5%8E%BB%E7%9A%84%E9%9D%92%E6%98%A5\">终将逝去的青春</a></li>\n</ul>","timeToRead":3}},"pageContext":{"slug":"/blog/2019/10/10/typescript-another-fading-youth"}}}