{"id":25932437,"url":"https://github.com/charliedigital/typescript-is-like-csharp","last_synced_at":"2026-05-06T15:32:11.708Z","repository":{"id":279542491,"uuid":"939155221","full_name":"CharlieDigital/typescript-is-like-csharp","owner":"CharlieDigital","description":"A set of docs helping TypeScript developers learn C#","archived":false,"fork":false,"pushed_at":"2025-02-26T05:24:19.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T05:30:23.575Z","etag":null,"topics":["csharp","javascript","typescript"],"latest_commit_sha":null,"homepage":"https://typescript-is-like-csharp.chrlschn.dev/","language":null,"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/CharlieDigital.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":"2025-02-26T04:40:44.000Z","updated_at":"2025-02-26T05:27:58.000Z","dependencies_parsed_at":"2025-02-26T05:30:33.769Z","dependency_job_id":"8a2f09a5-aca0-4277-b160-35c4accd9f8f","html_url":"https://github.com/CharlieDigital/typescript-is-like-csharp","commit_stats":null,"previous_names":["charliedigital/typescript-is-like-csharp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlieDigital%2Ftypescript-is-like-csharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlieDigital%2Ftypescript-is-like-csharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlieDigital%2Ftypescript-is-like-csharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlieDigital%2Ftypescript-is-like-csharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CharlieDigital","download_url":"https://codeload.github.com/CharlieDigital/typescript-is-like-csharp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241763766,"owners_count":20016161,"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":["csharp","javascript","typescript"],"created_at":"2025-03-04T00:37:37.947Z","updated_at":"2026-05-06T15:32:11.703Z","avatar_url":"https://github.com/CharlieDigital.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# TypeScript is Like C#\n\nSee: https://typescript-is-like-csharp.chrlschn.dev\n\nThis repository publishes a set of docs that is aimed at helping teams that are evaluating options beyond TypeScript.  (Or alternatively, if you are a C# developer trying to map concepts to JavaScript/TypeScript).  It is meant to help educate and clear up some myths and misconceptions around C# and modern .NET.\n\nMany teams may find themselves in this position after dealing with TypeScript issues and the reality that the underlying runtime is still JavaScript and all that implies.  It may be the case that your team ran into runtime issues with types, challenges at dev time as developers abuse TypeScript's dynamic and flexible type system, a lot of verbosity with authoring type schemas for validation, or gaps and issues with common Node.js ecosystem ORMs like Prisma.\n\nParticularly on the backend, the dynamic type system of JS (and therefore, TS) can be a bane when it comes to ensuring data quality and system correctness.\n\nI hope that these docs can help convince you that C# is a very realistic pathway if your team is already comfortable with TypeScript and frameworks like Nest.js.\n\nCheck out the published docs ***and please leave feedback***!\n\n## Contributing\n\n👋🏼 Hey there, interested in contributing?\n\nFork and make a PR!  Most of this repo is simply markdown so it's easy to contribute.\n\nTo run locally:\n\n```shell\n# Install dependencies\ncd docs\nyarn\n\n# From the root\nyarn --cwd docs docs:dev\n```\n\n## Code Examples\n\nTo test your code examples:\n\n### TypeScript\n\n1. Use [TypeScript Playground](https://www.typescriptlang.org/play/?#)\n2. For more comprehensive examples, create a sample project in `src/typescript`\n3. Use the `src/typescript/js-notebook.dib` for simple JavaScript examples\n\n### C#\n\n1. Use the C# notebook in `src/csharp/csharp-notebook.dib`\n2. Create a single file app in `src/csharp/fileapps`\n3. Create a full project and add it to the top-level solution.\n\n## Authoring Tips\n\nThe code splitter is a custom Vue component.\n\nTo use the code splitter:\n\n````html\n\u003cCodeSplitter\u003e\n  \u003ctemplate #left\u003e\n\n    ```ts\n    // TS/JS code goes here\n    ```\n\n  \u003c/template\u003e\n  \u003ctemplate #right\u003e\n\n   ```cs\n   // C# code goes here\n   ```\n\n  \u003c/template\u003e\n\u003c/CodeSplitter\u003e\n````\n\n\u003e 💡 ***Note*** the extra space after the opening `\u003ctemplate\u003e` and before the closing `\u003c/template\u003e`.  This is necessary for the VitePress pre-processor.\n\nIn some cases, you may only need to write code for either JS/TS or C#.  In these cases, just use normal markdown code fences.\n\nFor callouts:\n\n```\n::: info\nThis is an info box.\n:::\n\n::: tip\nThis is a tip.\n:::\n\n::: warning\nThis is a warning.\n:::\n\n::: danger\nThis is a dangerous warning.\n:::\n\n::: details\nThis is a details block.\n:::\n```\n\n## Guidelines\n\n- Focus on educating; you don't have to be able to fill in both sides (C# and JS); you can fill in one side and leave the other \"WIP\".\n- Write clear, concise, and easy to follow examples\n- Try to distill the examples down to the simplest use case that demonstrates the core of the idea; complex examples can be hard to grasp (but are sometimes unavoidable).\n- Use [VitePress markdown extensions](https://vitepress.dev/guide/markdown) where appropriate including code line highlighting.\n- When relevant, add links to documentation to interested readers can follow up and learn more!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharliedigital%2Ftypescript-is-like-csharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharliedigital%2Ftypescript-is-like-csharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharliedigital%2Ftypescript-is-like-csharp/lists"}