feat(typescript-types): Allow inversion of filter in KeyPaths<T, O, F>
This commit is contained in:
@@ -16,12 +16,7 @@ interface ExampleObject {
|
||||
}
|
||||
}
|
||||
|
||||
expect<KeyPaths<ExampleObject>>().type.toBe<
|
||||
'simplevalue' | 'optionalKey.simplevalue' | 'unknownKey' | 'config.simplevalue'
|
||||
>()
|
||||
expect<KeyPaths<ExampleObject, {}, any>>().type.toBeAssignableTo<never>()
|
||||
expect<KeyPaths<ExampleObject, {}, unknown>>().type.toBeAssignableTo<never>()
|
||||
expect<KeyPaths<ExampleObject, {}, never>>().type.toBe<
|
||||
type AllKeys =
|
||||
| 'nullvalue'
|
||||
| 'simplevalue'
|
||||
| 'optionalKey.nullvalue'
|
||||
@@ -29,7 +24,14 @@ expect<KeyPaths<ExampleObject, {}, never>>().type.toBe<
|
||||
| 'unknownKey'
|
||||
| 'config.nullvalue'
|
||||
| 'config.simplevalue'
|
||||
|
||||
expect<KeyPaths<ExampleObject>>().type.toBe<
|
||||
'simplevalue' | 'optionalKey.simplevalue' | 'unknownKey' | 'config.simplevalue'
|
||||
>()
|
||||
expect<KeyPaths<ExampleObject, {}, any>>().type.toBeAssignableTo<never>()
|
||||
expect<KeyPaths<ExampleObject, {}, unknown>>().type.toBeAssignableTo<never>()
|
||||
expect<KeyPaths<ExampleObject, {}, never>>().type.toBe<AllKeys>()
|
||||
expect<KeyPaths<ExampleObject, { invertFilter: true }, any>>().type.toBe<AllKeys>()
|
||||
expect<KeyPaths<ExampleObject, {}, null>>().type.toBe<
|
||||
'simplevalue' | 'optionalKey.simplevalue' | 'unknownKey' | 'config.simplevalue'
|
||||
>()
|
||||
|
||||
Reference in New Issue
Block a user