{"id":17973319,"url":"https://github.com/akapez/typescript-guide","last_synced_at":"2026-04-15T19:31:55.598Z","repository":{"id":260026672,"uuid":"878293265","full_name":"akapez/typescript-guide","owner":"akapez","description":"TypeScript lessons (academind)","archived":false,"fork":false,"pushed_at":"2024-10-28T07:41:57.000Z","size":92,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T11:14:12.880Z","etag":null,"topics":["nodejs","react","typescript","webpack"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akapez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-25T05:58:37.000Z","updated_at":"2024-10-29T03:55:41.000Z","dependencies_parsed_at":"2024-10-29T05:42:03.864Z","dependency_job_id":null,"html_url":"https://github.com/akapez/typescript-guide","commit_stats":null,"previous_names":["akapez/typescript-guide"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akapez%2Ftypescript-guide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akapez%2Ftypescript-guide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akapez%2Ftypescript-guide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akapez%2Ftypescript-guide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akapez","download_url":"https://codeload.github.com/akapez/typescript-guide/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247093203,"owners_count":20882365,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nodejs","react","typescript","webpack"],"created_at":"2024-10-29T16:30:24.491Z","updated_at":"2026-04-15T19:31:50.566Z","avatar_url":"https://github.com/akapez.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## TypeScript Guide\n\n**1. Typescript basics and basics types**\n\n- (string, number, boolean) types\n- type assignment and type inference\n- object types\n- arrays\n- tuple\n- enum\n- union types\n- literal type\n- type aliases\n- function return types and void\n- function types and callback\n- unknown type\n- never type\n\n**2. Typescript compiler and configuration**\n\n- watch mode\n  ```\n  tsc app.ts --watch\n  ```\n- initialize typeScript project\n  ```\n  npx tsc --init\n  ```\n- exclude and include (tsconfig.json)\n  ```json\n  {\n    \"exclude\": [\n      \"src/analytics.ts\",\n      \"**/*.dev.ts\",\n      \"node_modules\" // would be the default\n    ]\n  }\n  ```\n- compilation target (tsconfig.json)\n- rootDir and outDir (tsconfig.json)\n- docs: [What is a tsconfig.json](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) , [Compiler Config Docs](https://www.typescriptlang.org/docs/handbook/compiler-options.html), [TS Debugging](https://code.visualstudio.com/docs/typescript/typescript-debugging)\n\n**3. Classes and Interfaces**\n\n- constructor function and \"this\" keyword\n- private and public access modifiers\n- shorthand initialization\n- \"readonly\" properties\n- inheritance\n- getters and setters\n- static method and properties\n- abstract classes\n- singletons and private constructor\n- interfaces\n- \"readonly\" interface properties\n- extending properties\n- extending interfaces\n- interface as function type\n- optional parameters\n- docs: [TS Interfaces](https://www.typescriptlang.org/docs/handbook/2/objects.html) , [JS Classes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),\n\n**4. Advanced Types**\n\n- intersection types\n- type guard\n- discriminated unions\n- type casting\n- index properties\n- function overloads\n- optional chaining\n- nullish coalescing\n\n**5. Generics**\n\n- generic function\n- constraints\n- \"keyof\" constraints\n- generic classes\n- generic utility types: [Utility Types](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\n- docs: [Generics](https://www.typescriptlang.org/docs/handbook/2/generics.html)\n\n**6. Decorators**\n\n- classes decorators\n- decorator factories\n- property decorator\n- access decorator\n- parameter decorator\n- \"autobind\" decorator\n- validation with decorator\n- docs: [Decorators](https://www.typescriptlang.org/docs/handbook/decorators.html)\n\n**7. Drag and Drop Project**\n\n- namespace\n- es modules\n\n**8. Webpack**\n\n**9. Node.js and Express with TypeScript**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakapez%2Ftypescript-guide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakapez%2Ftypescript-guide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakapez%2Ftypescript-guide/lists"}