Skip to content

Commit

Permalink
Don’t use arguments parameter name
Browse files Browse the repository at this point in the history
Closes #645
Fixes #644
  • Loading branch information
sindresorhus committed Jul 16, 2023
1 parent 9fdac37 commit 5d903fe
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 11 deletions.
4 changes: 2 additions & 2 deletions source/internal.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ Needed to handle the case of a single call signature with properties.
Multiple call signatures cannot currently be supported due to a TypeScript limitation.
@see https://github.com/microsoft/TypeScript/issues/29732
*/
export type HasMultipleCallSignatures<T extends (...arguments: any[]) => unknown> =
T extends {(...arguments: infer A): unknown; (...arguments: any[]): unknown}
export type HasMultipleCallSignatures<T extends (...arguments_: any[]) => unknown> =
T extends {(...arguments_: infer A): unknown; (...arguments_: any[]): unknown}
? unknown[] extends A
? false
: true
Expand Down
2 changes: 1 addition & 1 deletion source/partial-deep.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ export type PartialDeep<T, Options extends PartialDeepOptions = {}> = T extends
? PartialReadonlyMapDeep<KeyType, ValueType, Options>
: T extends ReadonlySet<infer ItemType>
? PartialReadonlySetDeep<ItemType, Options>
: T extends ((...arguments: any[]) => unknown)
: T extends ((...arguments_: any[]) => unknown)
? T | undefined
: T extends object
? T extends ReadonlyArray<infer ItemType> // Test for arrays/tuples, per https://github.com/microsoft/TypeScript/issues/35156
Expand Down
2 changes: 1 addition & 1 deletion source/partial-on-undefined-deep.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export type PartialOnUndefinedDeep<T, Options extends PartialOnUndefinedDeepOpti
/**
Utility type to get the value type by key and recursively call `PartialOnUndefinedDeep` to transform sub-objects.
*/
type PartialOnUndefinedDeepValue<T, Options extends PartialOnUndefinedDeepOptions> = T extends BuiltIns | ((...arguments: any[]) => unknown)
type PartialOnUndefinedDeepValue<T, Options extends PartialOnUndefinedDeepOptions> = T extends BuiltIns | ((...arguments_: any[]) => unknown)
? T
: T extends ReadonlyArray<infer U> // Test if type is array or tuple
? Options['recurseIntoArrays'] extends true // Check if option is activated
Expand Down
4 changes: 2 additions & 2 deletions source/readonly-deep.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ Note that types containing overloaded functions are not made deeply readonly due
*/
export type ReadonlyDeep<T> = T extends BuiltIns
? T
: T extends (...arguments: any[]) => unknown
: T extends (...arguments_: any[]) => unknown
? {} extends ReadonlyObjectDeep<T>
? T
: HasMultipleCallSignatures<T> extends true
? T
: ((...arguments: Parameters<T>) => ReturnType<T>) & ReadonlyObjectDeep<T>
: ((...arguments_: Parameters<T>) => ReturnType<T>) & ReadonlyObjectDeep<T>
: T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>>
? ReadonlyMapDeep<KeyType, ValueType>
: T extends Readonly<ReadonlySet<infer ItemType>>
Expand Down
4 changes: 2 additions & 2 deletions source/required-deep.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,12 @@ export type RequiredDeep<T, E extends ExcludeUndefined<T> = ExcludeUndefined<T>>
? WeakSet<RequiredDeep<ItemType>>
: E extends Promise<infer ValueType>
? Promise<RequiredDeep<ValueType>>
: E extends (...args: any[]) => unknown
: E extends (...arguments_: any[]) => unknown
? {} extends RequiredObjectDeep<E>
? E
: HasMultipleCallSignatures<E> extends true
? E
: ((...arguments: Parameters<E>) => ReturnType<E>) & RequiredObjectDeep<E>
: ((...arguments_: Parameters<E>) => ReturnType<E>) & RequiredObjectDeep<E>
: E extends object
? E extends Array<infer ItemType> // Test for arrays/tuples, per https://github.com/microsoft/TypeScript/issues/35156
? ItemType[] extends E // Test for arrays (non-tuples) specifically
Expand Down
2 changes: 1 addition & 1 deletion source/schema.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export type Schema<ObjectType, ValueType> = ObjectType extends string
? ValueType
: ObjectType extends unknown[]
? ValueType
: ObjectType extends (...arguments: unknown[]) => unknown
: ObjectType extends (...arguments_: unknown[]) => unknown
? ValueType
: ObjectType extends Date
? ValueType
Expand Down
4 changes: 2 additions & 2 deletions source/writable-deep.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ Note that types containing overloaded functions are not made deeply writable due
*/
export type WritableDeep<T> = T extends BuiltIns
? T
: T extends (...arguments: any[]) => unknown
: T extends (...arguments_: any[]) => unknown
? {} extends WritableObjectDeep<T>
? T
: HasMultipleCallSignatures<T> extends true
? T
: ((...arguments: Parameters<T>) => ReturnType<T>) & WritableObjectDeep<T>
: ((...arguments_: Parameters<T>) => ReturnType<T>) & WritableObjectDeep<T>
: T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>>
? WritableMapDeep<KeyType, ValueType>
: T extends Readonly<ReadonlySet<infer ItemType>>
Expand Down

0 comments on commit 5d903fe

Please sign in to comment.