@tsonic/dotnet
v10.0.3
Published
TypeScript type definitions for .NET 10 BCL (Base Class Library)
Maintainers
Readme
@tsonic/dotnet
TypeScript type definitions for .NET 10 BCL (Base Class Library).
Versioning
This repo is versioned by .NET major:
- .NET 10 →
versions/10/→ npm:@tsonic/[email protected]
When publishing, run: npm publish versions/10 --access public
Features
- ✅ Complete .NET 10 BCL coverage - 130 namespaces, 4,296 types, 50,675 members
- ✅ camelCase members - TypeScript-friendly naming conventions
- ✅ Friendly generic aliases - Use
List<T>instead ofList_1<T> - ✅ Primitive aliases -
int,long,decimal, etc. via@tsonic/core - ✅ Full type safety - Zero TypeScript errors
Installation
npm install @tsonic/dotnet @tsonic/coreUsage
Collections
import type { List, Dictionary, HashSet } from "@tsonic/dotnet/System.Collections.Generic.js";
import type { int, decimal } from "@tsonic/core/types.js";
const ages: List<int> = null!;
const prices: Dictionary<string, decimal> = null!;
const uniqueIds: HashSet<int> = null!;Async Programming
import type { Task } from "@tsonic/dotnet/System.Threading.Tasks.js";
import type { int } from "@tsonic/core/types.js";
const asyncResult: Task<int> = null!;Core Types
import type { Nullable, Action, Func } from "@tsonic/dotnet/System.js";
import type { int } from "@tsonic/core/types.js";
const optional: Nullable<int> = null!;
const callback: Action<int> = null!;
const converter: Func<int, string> = null!;LINQ
import type { IEnumerable, IQueryable } from "@tsonic/dotnet/System.Linq.js";
import type { int } from "@tsonic/core/types.js";
const sequence: IEnumerable<int> = null!;Package Structure
- 130 namespaces - All major .NET namespaces
- Flat ESM modules - Clean import paths
- Metadata sidecars -
metadata.jsonfiles for CLR-specific info - Support types - Unsafe markers (
ptr<T>) and primitives imported from@tsonic/core
Naming Conventions
- Types: PascalCase (matches .NET)
- Members: camelCase (TypeScript convention)
- Generics: Friendly aliases (
List<T>vsList_1<T>)
Examples
File I/O
import type { Stream, FileStream } from "@tsonic/dotnet/System.IO.js";Networking
import type { HttpClient } from "@tsonic/dotnet/System.Net.Http.js";
import type { IPAddress, Socket } from "@tsonic/dotnet/System.Net.js";Serialization
import type { JsonSerializer } from "@tsonic/dotnet/System.Text.Json.js";Development
Regenerating Types
To regenerate TypeScript declarations from .NET assemblies:
./__build/scripts/generate.shPrerequisites:
- .NET 10 SDK installed
tsbindgenrepository cloned at../tsbindgen(sibling directory)
The script will:
- Clean existing namespace directories
- Build tsbindgen
- Generate fresh TypeScript declarations
Environment variables:
DOTNET_VERSION- .NET runtime version (default:10.0.1)DOTNET_HOME- .NET installation directory (default:$HOME/.dotnet)
Package Structure
@tsonic/dotnet/
├── families.json # Multi-arity family index
├── __internal/extensions/index.d.ts # Extension method buckets
├── System.d.ts # Facade (public API)
├── System.js # Runtime stub (throws)
├── System/
│ ├── bindings.json
│ └── internal/
│ ├── index.d.ts
│ └── metadata.json
├── ... (more namespaces)
└── __build/scripts/generate.sh # Type regeneration scriptLicense
MIT
