@@ -200,7 +200,19 @@ interface ObjectConstructor {
200200 * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
201201 * @param o Object on which to lock the attributes.
202202 */
203- freeze < T > ( o : T ) : T ;
203+ freeze < T > ( a : T [ ] ) : ReadonlyArray < T > ;
204+
205+ /**
206+ * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
207+ * @param o Object on which to lock the attributes.
208+ */
209+ freeze < T extends Function > ( f : T ) : T ;
210+
211+ /**
212+ * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
213+ * @param o Object on which to lock the attributes.
214+ */
215+ freeze < T > ( o : T ) : Readonly < T > ;
204216
205217 /**
206218 * Prevents the addition of new properties to an object.
@@ -1363,6 +1375,34 @@ interface ArrayLike<T> {
13631375 readonly [ n : number ] : T ;
13641376}
13651377
1378+ /**
1379+ * Make all properties in T optional
1380+ */
1381+ type Partial < T > = {
1382+ [ P in keyof T ] ?: T [ P ] ;
1383+ } ;
1384+
1385+ /**
1386+ * Make all properties in T readonly
1387+ */
1388+ type Readonly < T > = {
1389+ readonly [ P in keyof T ] : T [ P ] ;
1390+ } ;
1391+
1392+ /**
1393+ * From T pick a set of properties K
1394+ */
1395+ type Pick < T , K extends keyof T > = {
1396+ [ P in K ] : T [ P ] ;
1397+ }
1398+
1399+ /**
1400+ * Construct a type with a set of properties K of type T
1401+ */
1402+ type Record < K extends string , T > = {
1403+ [ P in K ] : T ;
1404+ }
1405+
13661406/**
13671407 * Represents a raw buffer of binary data, which is used to store data for the
13681408 * different typed arrays. ArrayBuffers cannot be read from or written to directly,
0 commit comments