TS2851
TypeScriptERRORNotableTypeHIGH confidence

The initializer of an 'await using' declaration must be either an object with...

Production Risk

Build will fail; resolve before shipping.

What this means

A type-checking error (TS2851): The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.. This diagnostic is emitted by the TypeScript compiler when the initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'..

Why it happens
  1. 1await used outside an async function, or async/await return type mismatch
How to reproduce

TypeScript compiler reports TS2851 during type checking.

trigger — this will error
trigger — this will error
// Triggers TS2851
// The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.

expected output

error TS2851: The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.

Fix

Address the TypeScript diagnostic

WHEN When this error is reported by the compiler

Address the TypeScript diagnostic
// Run the TypeScript compiler for details:
npx tsc --noEmit
// Use the TypeScript playground to test your code:
// https://www.typescriptlang.org/play

Why this works

Review the full error message and location; the TypeScript handbook provides guidance on each error category.

Sources
Official documentation ↗

TypeScript Compiler Diagnostics

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All TypeScript errors