✨ 记录自己学习 TypeScript 时遇到的一些有趣的代码。
src
├── InversifyJS
│ ├── entities.ts
│ ├── index.ts
│ ├── interfaces.ts
│ └── inversify.config.ts
├── better-scroll-plugins.ts
├── class-chaining.ts
├── connect-leetcode-hire.ts
├── const-assertions.ts
├── covariance-contravariance
│ └── index.ts
├── create-reversed-map.ts
├── decorator
│ ├── log-property.ts
│ ├── method-decorator.ts
│ └── param-decorator.ts
├── discriminated-unions-select.ts
├── dispatch-conditional-types-with-builtin-types.ts
├── dispatch-conditional-types.ts
├── distribute-conditional-type.ts
├── exhaustiveness-checking.ts
├── feat-4.0
│ ├── concat.ts
│ └── tail.ts
├── feat-4.1
│ └── vuex.ts
├── flatten-object.ts
├── function-property-names.ts
├── getter-type-easy.ts
├── getter-type-returntype.ts
├── getter-type.ts
├── ioc-loader
│ └── good-case.ts
├── merge
│ ├── function-class-interface-merge.ts
│ ├── global-augmentation.ts
│ ├── interface-merge-a.ts
│ ├── interface-merge-b.ts
│ ├── module-augmentation-a.ts
│ ├── module-augmentation-b.ts
│ ├── namespace-merge-a.ts
│ └── namespace-merge-b.ts
├── mixin-classes.ts
├── polymorphic-button.tsx
├── polymorphic-this.ts
├── reflect-metadata
│ ├── reflect-metadata.ts
│ └── server.ts
├── select-property
│ ├── required-keys.ts
│ ├── select-data-property.ts
│ ├── select-feature.ts
│ └── select-readonly.ts
├── state-machine.ts
├── tail.ts
├── tree-property.ts
├── type-brand.ts
├── type-vs-interface.ts
├── union-to-intersection.ts
├── vue.ts
├── vue3-ref.ts
└── vuex.ts