@@ -254,8 +254,11 @@ export default makeE;
254
254
/** @typedef {ReturnType<makeE> } EProxy */
255
255
256
256
/**
257
- * Creates a type that accepts both near and marshalled references that were
258
- * returned from `Remotable` or `Far`, and also promises for such references.
257
+ * Declare an object that is potentially a far reference of type Primary whose
258
+ * auxilliary data has type Local. This should be used only for consumers of
259
+ * Far objects in arguments and declarations; the only creators of Far objects
260
+ * are distributed object creator components like the `Far` or `Remotable`
261
+ * functions.
259
262
*
260
263
* @template Primary The type of the primary reference.
261
264
* @template [Local=DataOnly<Primary>] The local properties of the object.
@@ -274,6 +277,9 @@ export default makeE;
274
277
* @see {@link https://github.com/microsoft/TypeScript/issues/31394 }
275
278
* @template T
276
279
* @typedef {PromiseLike<T> | T } ERef
280
+ * Declare that `T` may or may not be a Promise. This should be used only for
281
+ * consumers of arguments and declarations; return values should specifically be
282
+ * `Promise<T>` or `T` itself.
277
283
*/
278
284
279
285
/**
@@ -406,8 +412,9 @@ export default makeE;
406
412
*/
407
413
408
414
/**
409
- * Type for an object that must only be invoked with E. It supports a given
410
- * interface but declares all the functions as asyncable.
415
+ * Declare a near object that must only be invoked with E, even locally. It
416
+ * supports the `T` interface but additionally permits `T`'s methods to return
417
+ * `PromiseLike`s even if `T` declares them as only synchronous.
411
418
*
412
419
* @template T
413
420
* @typedef {(
0 commit comments