gitextract_d86sgzr5/ ├── .gitattributes ├── .github/ │ └── workflows/ │ └── build.yml ├── .gitignore ├── CONTRIBUTING.md ├── GLOSSARY.md ├── LICENSE.md ├── README.md ├── SUMMARY.md ├── book.json ├── code/ │ ├── async-await/ │ │ ├── es5/ │ │ │ ├── asyncAwaitES5.js │ │ │ ├── asyncAwaitES5.ts │ │ │ └── tsconfig.json │ │ └── es6/ │ │ ├── asyncAwaitES6.js │ │ ├── asyncAwaitES6.ts │ │ └── tsconfig.json │ ├── compiler/ │ │ ├── package.json │ │ ├── parser/ │ │ │ ├── runParser.js │ │ │ └── runParser.ts │ │ ├── scanner/ │ │ │ ├── runScanner.js │ │ │ ├── runScanner.ts │ │ │ ├── runScannerWithPositions.js │ │ │ └── runScannerWithPositions.ts │ │ ├── tsconfig.json │ │ ├── tsd.json │ │ └── typings/ │ │ ├── node/ │ │ │ └── node.d.ts │ │ └── tsd.d.ts │ ├── declarationspaces/ │ │ ├── declarationspace.js │ │ └── declarationspace.ts │ ├── dynamic-import-expressions/ │ │ ├── dynamicImportExpression.js │ │ ├── dynamicImportExpression.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── errors/ │ │ ├── common-errors.ts │ │ ├── interpreting-errors.ts │ │ └── tsconfig.json │ ├── es6/ │ │ ├── classes/ │ │ │ ├── abstract.js │ │ │ ├── abstract.ts │ │ │ ├── class.js │ │ │ ├── class.ts │ │ │ ├── super.js │ │ │ ├── super.ts │ │ │ └── tsconfig.json │ │ ├── const.js │ │ ├── const.ts │ │ ├── destructuring.js │ │ ├── destructuring.ts │ │ ├── enums.js │ │ ├── enums.ts │ │ ├── for..of.js │ │ ├── for..of.ts │ │ ├── forof.js │ │ ├── iterators.js │ │ ├── iterators.ts │ │ ├── let.js │ │ ├── let.ts │ │ ├── rest-parameters.js │ │ ├── rest-parameters.ts │ │ ├── spread-operator.js │ │ ├── spread-operator.ts │ │ ├── template-strings.js │ │ ├── template-strings.ts │ │ ├── test.js │ │ ├── test.ts │ │ └── tsconfig.json │ ├── javascript/ │ │ ├── closure.js │ │ ├── closure.ts │ │ └── tsconfig.json │ ├── tips/ │ │ ├── bindIsBad.js │ │ ├── bindIsBad.ts │ │ ├── currying.js │ │ ├── currying.ts │ │ ├── lazyObjectLiteralInitialization.js │ │ ├── lazyObjectLiteralInitialization.ts │ │ ├── mixins.js │ │ ├── mixins.ts │ │ ├── nominalTyping.js │ │ ├── nominalTyping.ts │ │ ├── statefulFunctions.js │ │ ├── statefulFunctions.ts │ │ ├── stringEnums.js │ │ ├── stringEnums.ts │ │ └── tsconfig.json │ └── types/ │ ├── assertion.js │ ├── assertion.ts │ ├── callable.ts │ ├── freshness/ │ │ ├── freshness.js │ │ ├── freshness.ts │ │ ├── index-signatures.js │ │ ├── index-signatures.ts │ │ └── tsconfig.json │ ├── functions.js │ ├── functions.ts │ ├── generics.js │ ├── generics.ts │ ├── interfaces.js │ ├── interfaces.ts │ ├── keyof.ts │ ├── lib/ │ │ ├── exclude/ │ │ │ ├── nolibd.js │ │ │ ├── nolibd.ts │ │ │ └── tsconfig.json │ │ └── usage/ │ │ ├── libd.js │ │ ├── libd.ts │ │ └── tsconfig.json │ ├── libd.js │ ├── literal-types.js │ ├── literal-types.ts │ ├── migrating/ │ │ ├── migrating.js │ │ ├── migrating.ts │ │ └── tsconfig.json │ ├── readonly.js │ ├── readonly.ts │ ├── stringLiteralType.js │ ├── tsconfig.json │ ├── type-compatibility.js │ ├── type-compatibility.ts │ ├── type-inference.js │ ├── type-inference.ts │ ├── typeGuard.js │ ├── typeGuard.ts │ ├── types.js │ └── types.ts ├── docs/ │ ├── arrow-functions.md │ ├── async-await.md │ ├── classes-emit.md │ ├── classes.md │ ├── compiler/ │ │ ├── ast-tip-children.md │ │ ├── ast-tip-syntaxkind.md │ │ ├── ast-trivia.md │ │ ├── ast.md │ │ ├── binder-container.md │ │ ├── binder-declarations.md │ │ ├── binder-diagnostics.md │ │ ├── binder-functions.md │ │ ├── binder-symbolflags.md │ │ ├── binder-symboltable.md │ │ ├── binder.md │ │ ├── checker-diagnostics.md │ │ ├── checker-global.md │ │ ├── checker.md │ │ ├── contributing.md │ │ ├── emitter-functions.md │ │ ├── emitter-sourcemaps.md │ │ ├── emitter.md │ │ ├── make-global.md │ │ ├── overview.md │ │ ├── parser-functions.md │ │ ├── parser.md │ │ ├── program.md │ │ └── scanner.md │ ├── compiler-options.md │ ├── const.md │ ├── declaration.md │ ├── destructuring.md │ ├── enums.md │ ├── errors/ │ │ ├── common-errors.md │ │ ├── interpreting-errors.md │ │ └── main.md │ ├── for...of.md │ ├── future-javascript.md │ ├── generators.md │ ├── getting-started.md │ ├── iterators.md │ ├── javascript/ │ │ ├── closure.md │ │ ├── equality.md │ │ ├── null-undefined.md │ │ ├── number.md │ │ ├── recap.md │ │ ├── references.md │ │ ├── this.md │ │ └── truthy.md │ ├── jsx/ │ │ ├── others.md │ │ ├── react.md │ │ └── tsx.md │ ├── let.md │ ├── npm/ │ │ └── index.md │ ├── options/ │ │ ├── intro.md │ │ ├── noImplicitAny.md │ │ └── strictNullChecks.md │ ├── project/ │ │ ├── compilation-context.md │ │ ├── declarationspaces.md │ │ ├── dynamic-import-expressions.md │ │ ├── external-modules.md │ │ ├── files.md │ │ ├── globals.md │ │ ├── module-resolution.md │ │ ├── modules.md │ │ ├── namespaces.md │ │ ├── project.md │ │ └── tsconfig.md │ ├── promise.md │ ├── quick/ │ │ ├── browser.md │ │ ├── library.md │ │ └── nodejs.md │ ├── rest-parameters.md │ ├── spread-operator.md │ ├── staging/ │ │ ├── async-await.md │ │ └── generators.md │ ├── state/ │ │ └── mobx.md │ ├── styleguide/ │ │ ├── sample.js │ │ ├── sample.ts │ │ ├── styleguide.md │ │ └── tsconfig.json │ ├── template-strings.md │ ├── testing/ │ │ ├── cypress.md │ │ ├── intro.md │ │ └── jest.md │ ├── tips/ │ │ ├── barrel.md │ │ ├── build-toggles.md │ │ ├── classesAreUseful.md │ │ ├── create-arrays.md │ │ ├── currying.md │ │ ├── defaultIsBad.md │ │ ├── functionParameters.md │ │ ├── jquery.md │ │ ├── lazyObjectLiteralInitialization.md │ │ ├── main.md │ │ ├── nominalTyping.md │ │ ├── outFile.md │ │ ├── propertySetters.md │ │ ├── singleton.md │ │ ├── statefulFunctions.md │ │ ├── staticConstructor.md │ │ ├── stringEnums.md │ │ ├── typeInstantiation.md │ │ └── typed-event.md │ ├── tools/ │ │ ├── changelog.md │ │ ├── eslint.md │ │ ├── husky.md │ │ ├── intro.md │ │ └── prettier.md │ ├── types/ │ │ ├── @types.md │ │ ├── advanced.md │ │ ├── ambient/ │ │ │ ├── d.ts.md │ │ │ ├── intro.md │ │ │ └── variables.md │ │ ├── callable.md │ │ ├── discriminated-unions.md │ │ ├── exceptions.md │ │ ├── freshness.md │ │ ├── functions.md │ │ ├── generics.md │ │ ├── index-signatures.md │ │ ├── interfaces.md │ │ ├── lib.d.ts.md │ │ ├── literal-types.md │ │ ├── migrating.md │ │ ├── mixins.md │ │ ├── moving-types.md │ │ ├── never.md │ │ ├── readonly.md │ │ ├── type-assertion.md │ │ ├── type-compatibility.md │ │ ├── type-inference.md │ │ ├── type-system.md │ │ └── typeGuard.md │ └── why-typescript.md ├── footer.md ├── header.html ├── images/ │ ├── promise states and fates.vsd │ └── venn.vsd └── snippets/ └── md-snippets.cson