RejectBareLocal<C>Reject bare local members in a plain Tag<Self>() contract — bare locals need
Tag<Self, I>() so the interface can supply their type.
Source src/Hyperlink.ts:22567 lines
export type type RejectBareLocal<C> = {
readonly [K in keyof C]: C[K] extends BareLocal
? LocalNeedsType<K>
: C[K] extends Spec
? RejectBareLocal<C[K]>
: C[K]
}
Reject bare
local
members in a plain
Tag
<Self>() contract — bare locals need
Tag
<Self, I>() so the interface can supply their type.
RejectBareLocal<function (type parameter) C in type RejectBareLocal<C>C> = {
readonly [function (type parameter) KK in keyof function (type parameter) C in type RejectBareLocal<C>C]: function (type parameter) C in type RejectBareLocal<C>C[function (type parameter) KK] extends BareLocal
? interface LocalNeedsType<K extends PropertyKey>The error surface a bare
local
resolves to when the service interface has no member at that
key — a required, unsatisfiable field, so the whole contract argument fails to type-check at the
call.
LocalNeedsType<function (type parameter) KK>
: function (type parameter) C in type RejectBareLocal<C>C[function (type parameter) KK] extends Spec
? type RejectBareLocal<C> = {
readonly [K in keyof C]: C[K] extends BareLocal
? LocalNeedsType<K>
: C[K] extends Spec
? RejectBareLocal<C[K]>
: C[K]
}
Reject bare
local
members in a plain
Tag
<Self>() contract — bare locals need
Tag
<Self, I>() so the interface can supply their type.
RejectBareLocal<function (type parameter) C in type RejectBareLocal<C>C[function (type parameter) KK]>
: function (type parameter) C in type RejectBareLocal<C>C[function (type parameter) KK];
};
Referenced by 1 symbols