Skip to content

Commit 25191f6

Browse files
committed
fixed optional utils: undifined to ?
1 parent 48bba2b commit 25191f6

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# changelog
22

3+
## 2.2.6
4+
5+
- utils: fixed `-?` for Optional types (as bad idea)
6+
- utils fixed: OptionalExcept fixed for older ts versions
7+
38
## 2.2.3
49

510
- utils added: OptionalExcept

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "types-spring",
3-
"version": "2.2.5",
3+
"version": "2.2.6",
44
"description": "a package that provides more accurate and powerful typescript capabilities",
55
"types": "./sources/utils/index.ts",
66
"exports": {

sources/utils/index.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -486,9 +486,10 @@ export type ReduceBy<T extends object[] | ReadonlyArray<object>, Key extends key
486486
* @returns {object} conditionally partial object
487487
* @example Optional<'a'|'b', {a: 1, b:1, c: 1}> => {a: 1 | undefined, b:1 | undefined, c: 1}
488488
*/
489-
export type Optional<Keys extends PropertyKey, O extends object> = {
490-
[K in keyof O]: K extends Keys ? O[K] | undefined : O[K]
491-
}
489+
export type Optional<Keys extends PropertyKey, O extends object> = _Simplify_<{
490+
[K in keyof O as K extends Keys ? K : never]?: O[K] } & {
491+
[K in keyof O as K extends Keys ? never : K]: O[K]
492+
}>
492493

493494

494495
/**
@@ -500,8 +501,9 @@ export type Optional<Keys extends PropertyKey, O extends object> = {
500501
* @example Optional<'a'|'b', {a: 1, b:1, c: 1}> => {a: 1, b:1, c: 1 | undefined}
501502
*/
502503
export type OptionalExcept<Keys extends PropertyKey, O extends object> = _Simplify_<{
503-
[K in keyof O]: K extends Keys ? O[K] : O[K] | undefined
504-
}>
504+
[K in keyof O as K extends Keys ? K : never]: O[K] } & {
505+
[K in keyof O as K extends Keys ? never : K]?: O[K]
506+
}>
505507

506508

507509

0 commit comments

Comments
 (0)