@types/lodash 4.14.186 → 4.14.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
lodash/README.md CHANGED
@@ -8,7 +8,7 @@ This package contains type definitions for Lo-Dash (https://lodash.com).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Wed, 28 Sep 2022 19:03:08 GMT
11
+ * Last updated: Tue, 01 Nov 2022 01:02:55 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `_`
14
14
 
lodash/common/object.d.ts CHANGED
@@ -1019,6 +1019,41 @@ declare module "../index" {
1019
1019
  */
1020
1020
  functionsIn(): CollectionChain<string>;
1021
1021
  }
1022
+
1023
+ type GetIndexedField<T, K> = K extends keyof T
1024
+ ? T[K]
1025
+ : K extends `${number}`
1026
+ ? '0' extends keyof T
1027
+ ? undefined
1028
+ : number extends keyof T
1029
+ ? T[number]
1030
+ : undefined
1031
+ : undefined;
1032
+
1033
+ type FieldWithPossiblyUndefined<T, Key> =
1034
+ | GetFieldType<Exclude<T, undefined>, Key>
1035
+ | Extract<T, undefined>;
1036
+
1037
+ type IndexedFieldWithPossiblyUndefined<T, Key> =
1038
+ | GetIndexedField<Exclude<T, undefined>, Key>
1039
+ | Extract<T, undefined>;
1040
+
1041
+ type GetFieldType<T, P> = P extends `${infer Left}.${infer Right}`
1042
+ ? Left extends keyof T
1043
+ ? FieldWithPossiblyUndefined<T[Left], Right>
1044
+ : Left extends `${infer FieldKey}[${infer IndexKey}]`
1045
+ ? FieldKey extends keyof T
1046
+ ? FieldWithPossiblyUndefined<IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>, Right>
1047
+ : undefined
1048
+ : undefined
1049
+ : P extends keyof T
1050
+ ? T[P]
1051
+ : P extends `${infer FieldKey}[${infer IndexKey}]`
1052
+ ? FieldKey extends keyof T
1053
+ ? IndexedFieldWithPossiblyUndefined<T[FieldKey], IndexKey>
1054
+ : undefined
1055
+ : undefined;
1056
+
1022
1057
  interface LoDashStatic {
1023
1058
  /**
1024
1059
  * Gets the property value at path of object. If the resolved value is undefined the defaultValue is used
@@ -1097,7 +1132,11 @@ declare module "../index" {
1097
1132
  /**
1098
1133
  * @see _.get
1099
1134
  */
1100
- get(object: any, path: PropertyPath, defaultValue?: any): any;
1135
+ get<TObject, TPath extends string, TDefault = GetFieldType<TObject, TPath>>(data: TObject, path: TPath, defaultValue?: TDefault): GetFieldType<TObject, TPath> | TDefault;
1136
+ /**
1137
+ * @see _.get
1138
+ */
1139
+ get(object: any, path: PropertyPath, defaultValue?: any): any;
1101
1140
  }
1102
1141
  interface String {
1103
1142
  /**
@@ -1142,6 +1181,10 @@ declare module "../index" {
1142
1181
  * @see _.get
1143
1182
  */
1144
1183
  get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3], TDefault>(path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined> | TDefault;
1184
+ /**
1185
+ * @see _.get
1186
+ */
1187
+ get<TPath extends string, TDefault = GetFieldType<T, TPath>>(path: TPath, defaultValue?: TDefault): GetFieldType<T, TPath> | TDefault;
1145
1188
  /**
1146
1189
  * @see _.get
1147
1190
  */
@@ -1226,6 +1269,10 @@ declare module "../index" {
1226
1269
  * @see _.get
1227
1270
  */
1228
1271
  get<TKey1 extends keyof T, TKey2 extends keyof T[TKey1], TKey3 extends keyof T[TKey1][TKey2], TKey4 extends keyof T[TKey1][TKey2][TKey3], TDefault>(path: [TKey1, TKey2, TKey3, TKey4], defaultValue: TDefault): ExpChain<Exclude<T[TKey1][TKey2][TKey3][TKey4], undefined> | TDefault>;
1272
+ /**
1273
+ * @see _.get
1274
+ */
1275
+ get<TPath extends string, TDefault = GetFieldType<T, TPath>>(path: TPath, defaultValue?: TDefault): ExpChain<GetFieldType<T, TPath> | TDefault>;
1229
1276
  /**
1230
1277
  * @see _.get
1231
1278
  */
lodash/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/lodash",
3
- "version": "4.14.186",
3
+ "version": "4.14.187",
4
4
  "description": "TypeScript definitions for Lo-Dash",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash",
6
6
  "license": "MIT",
@@ -55,6 +55,6 @@
55
55
  },
56
56
  "scripts": {},
57
57
  "dependencies": {},
58
- "typesPublisherContentHash": "7645fa6cd2c73e07135b0eaec899d85b2416bc0a88a3dd1f5c58a0e9158cc295",
58
+ "typesPublisherContentHash": "9aba8dca290642b756433ae11de36b9090618e7db7d562e54625be28aaf2fc85",
59
59
  "typeScriptVersion": "4.1"
60
60
  }