{"id":38343132,"url":"https://github.com/leona/ts2go","last_synced_at":"2026-01-17T03:00:57.726Z","repository":{"id":220960643,"uuid":"753027369","full_name":"leona/ts2go","owner":"leona","description":"Experimental TypeScript to Go transpiler","archived":false,"fork":false,"pushed_at":"2024-07-12T14:18:29.000Z","size":2557,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-07-12T16:26:01.570Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ts2go.pages.dev/","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/leona.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}},"created_at":"2024-02-05T10:24:22.000Z","updated_at":"2024-07-12T14:18:32.000Z","dependencies_parsed_at":"2024-02-05T12:43:06.774Z","dependency_job_id":null,"html_url":"https://github.com/leona/ts2go","commit_stats":null,"previous_names":["leona/ts2go"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/leona/ts2go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leona%2Fts2go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leona%2Fts2go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leona%2Fts2go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leona%2Fts2go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leona","download_url":"https://codeload.github.com/leona/ts2go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leona%2Fts2go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28492593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T02:39:23.645Z","status":"ssl_error","status_checked_at":"2026-01-17T02:34:19.649Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-17T03:00:42.276Z","updated_at":"2026-01-17T03:00:57.679Z","avatar_url":"https://github.com/leona.png","language":"TypeScript","funding_links":[],"categories":["Other Language Targets"],"sub_categories":[],"readme":"# ts2go\n\nExperimental TypeScript to Go transpiler. Supports an extremely limited subset of TypeScript features.\n\nPlayground\nhttps://ts2go.pages.dev/\n\n![](https://github.com/leona/ts2go/blob/master/assets/playground.png?raw=true)\n\nDebugger (`docker-compose up`)\n\n![](https://github.com/leona/ts2go/blob/master/assets/debugger.png?raw=true)\n\n## Why?\n\nThis is just a crazy experiment to learn more about ASTs. Should you use this? Probably not. But I've found it a fun experiment.\n\nMy goal for this was not to reach Go performance with Typescript, or to have 1-1 support, but just to be able to write simple applications (CLI tools etc.) in TypeScript and output a small, portable and low footprint binary.\n\n\n### Not yet supported\n- disable any keyword and force strict typing\n- enums\n- classes\n- impoved type inference\n- support callbacks\n- async await\n- complete fetch, console, Date \u0026 process support\n- float\n- try/catch\n- spread operators\n- anonymous/named functions\n- type params\n- support constructors like new Date() but also static references like Date.now()\n- support not capitalising variable names within a scoped function\n- debug wrapper to print TS lines or comments\n- error handling for unsupported features\n- imports\n- declaring multiple variables at once e.g. const test, test2 = \"test\"\n- computed properties such as length\n- pass by reference everywhere\n- optimiser and debugger, crawl through and check for pushing string to int array etc.\n- run tests in typescript \u0026 Go then compare\n- seperate GoNode into multiple types\n- casting\n- utilise the reference IDs you can generate with asty\n- optionals\n\nFeatures this may never support\n- enums\n- interface properties\n- inheritence\n- same variable names different capitalisation\n- partial imports, only import all\n- mutating int to float\n- var scoping\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleona%2Fts2go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleona%2Fts2go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleona%2Fts2go/lists"}