These docs cover 0.2.0-beta.26. Each guide distinguishes supported beta behavior, explicit deployment boundaries, and retained 0.1 compatibility material.

Browse documentationAll guides

Build · language boundary

TypeScript and JSX

Presolve 0.2 beta targets the TypeScript 7.0 compatibility train. TypeScript proves language types; the Presolve compiler separately proves component identity, ownership, dependencies, DOM operations, serialization, and capability behavior.

Generated project defaults

{"compilerOptions": {"target": "ES2022","moduleResolution": "NodeNext","strict": true,"noEmit": true,"jsx": "preserve"}}
strictNormal TypeScript safety remains enabled.
jsx: preserveThe Presolve compiler receives authored TSX instead of transformed calls.
noEmitTypeScript checks types; Presolve owns application publication.

TSX in render

Use intrinsic HTML elements, static attributes, admitted dynamic bindings, and compiler-resolved component classes. Use className and htmlFor for their HTML counterparts.

<label htmlFor="name">Name</label><input id="name" className="field" value={this.name} />

Events

Pass an action directly when possible. Use a closure only for an admitted exact capture, such as a primitive item identity.

<button onClick={this.save}>Save</button><button onClick={() => this.remove(todo.id)}>Remove</button>

Type-valid is not automatically lowerable

TypeScript accepting a program does not prove that Presolve can publish its meaning. Arbitrary control flow, JSX transforms, constructors, DOM mutation, async actions, capabilities, and package internals remain subject to compiler contracts.

Fail-closed behavior

If the compiler cannot establish the required semantics, pnpm check emits a stable diagnostic. It does not silently run the source through a generic renderer or reactive fallback.

Version policy

Use the TypeScript version installed by the scaffold and keep @presolve/typescript-authority, the CLI, and framework on the same Presolve release. TypeScript 7.1 is not the supported baseline until its compatibility matrix is proven.