@types/ember__component
Advanced tools
Comparing version 4.0.7 to 4.0.8
@@ -56,2 +56,15 @@ import EmberObject from '@ember/object'; | ||
// This type allows us to present a slightly-less-obtuse error message | ||
// when attempting to resolve the signature of a helper that doesn't have | ||
// one declared from within a tool like Glint. | ||
declare const BadType: unique symbol; | ||
interface BadType<Message> { | ||
[BadType]: Message; | ||
} | ||
interface MissingSignatureArgs { | ||
Named: BadType<'This helper is missing a signature'>; | ||
Positional: unknown[]; | ||
} | ||
/** | ||
@@ -75,3 +88,5 @@ * Given any allowed shorthand form of a signature, desugars it to its full | ||
export interface ExpandSignature<T> { | ||
Args: keyof T extends 'Args' | 'Return' // Is this a `Signature`? | ||
Args: unknown extends T // Is this the default (i.e. unspecified) signature? | ||
? MissingSignatureArgs // Then return our special "missing signature" type | ||
: keyof T extends 'Args' | 'Return' // Is this a `Signature`? | ||
? ArgsFor<T> // Then use `Signature` args | ||
@@ -82,4 +97,8 @@ : LegacyArgsFor<T>; // Otherwise fall back to classic `Args`. | ||
type NamedArgs<S> = ExpandSignature<S>['Args']['Named']; | ||
type PositionalArgs<S> = ExpandSignature<S>['Args']['Positional']; | ||
// The `unknown extends S` checks on both of these are here to preserve backward | ||
// compatibility with the existing non-`Signature` definition. When migrating | ||
// into Ember or otherwise making a breaking change, we can drop the "default" | ||
// in favor of just using `ExpandSignature`. | ||
type NamedArgs<S> = unknown extends S ? Record<string, unknown> : ExpandSignature<S>['Args']['Named']; | ||
type PositionalArgs<S> = unknown extends S ? unknown[] : ExpandSignature<S>['Args']['Positional']; | ||
@@ -86,0 +105,0 @@ type Return<S> = GetOrElse<S, 'Return', unknown>; |
{ | ||
"name": "@types/ember__component", | ||
"version": "4.0.7", | ||
"version": "4.0.8", | ||
"description": "TypeScript definitions for @ember/component", | ||
@@ -37,4 +37,4 @@ "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ember__component", | ||
}, | ||
"typesPublisherContentHash": "61bf962bedf6b56d7edbefef29573b5e2d299a60f24fa1ac6eb51f3ff2ca4858", | ||
"typesPublisherContentHash": "dc532ab9e4666d17acffd0c285ff1a36ea645802b88fb567559641732e8fd5d8", | ||
"typeScriptVersion": "4.4" | ||
} |
@@ -11,3 +11,3 @@ # Installation | ||
### Additional Details | ||
* Last updated: Tue, 05 Apr 2022 21:01:44 GMT | ||
* Last updated: Tue, 05 Apr 2022 21:31:54 GMT | ||
* Dependencies: [@types/ember__component](https://npmjs.com/package/@types/ember__component), [@types/ember](https://npmjs.com/package/@types/ember), [@types/ember__object](https://npmjs.com/package/@types/ember__object) | ||
@@ -14,0 +14,0 @@ * Global values: none |
24295
474