ErasedBaseType Class
Used to mark a @sealed interface in a strongly typed way to prevent external implementations.
For more information about our API support guarantees, see here.
This type is "sealed," meaning that code outside of the library defining it should not implement or extend it. Future versions of this type may add members or make typing of readonly members more specific.
Signature
/** @sealed */
export declare abstract class ErasedBaseType<out Name = unknown>
Type Parameters
| Parameter | Default | Description |
|---|---|---|
| Name | unknown |
Remarks
This is an alternative to ErasedType which is more ergonomic to implement in the case where the implementation can extend ErasedTypeImplementation.
Users of interfaces extending this should never refer to anything about this class: migrating the type branding to another mechanism, like ErasedType should be considered a non-breaking change.
Constructors
| Constructor | Alerts | Description |
|---|---|---|
| (constructor)() | Beta |
This class should never exist at runtime, so make it un-constructable. |
Methods
| Method | Alerts | Return Type | Description |
|---|---|---|---|
| brand(dummy) | Beta |
Name | Compile time only marker to make type checking more strict. This method will not exist at runtime and accessing it is invalid. |
Constructor Details
(constructor)
This class should never exist at runtime, so make it un-constructable.
For more information about our API support guarantees, see here.
Signature
protected constructor();
Method Details
brand
Compile time only marker to make type checking more strict. This method will not exist at runtime and accessing it is invalid.
For more information about our API support guarantees, see here.
Signature
protected abstract brand(dummy: never): Name;
Parameters
| Parameter | Type | Description |
|---|---|---|
| dummy | never |
Returns
Return type: Name