@@ -32,7 +32,7 @@ export type PartialDeepOptions = {
3232
3333 declare const partialSettings: PartialDeep<Settings, {recurseIntoArrays: true; allowUndefinedInNonTupleArrays: true}>;
3434
35- partialSettings.languages = [undefined]; // Ok
35+ partialSettings.languages = [undefined]; // OK
3636 ```
3737 */
3838 readonly allowUndefinedInNonTupleArrays ?: boolean ;
@@ -54,19 +54,19 @@ Use-cases:
5454```
5555import type {PartialDeep} from 'type-fest';
5656
57- const settings: Settings = {
57+ let settings = {
5858 textEditor: {
5959 fontSize: 14,
6060 fontColor: '#000000',
61- fontWeight: 400
61+ fontWeight: 400,
6262 },
6363 autocomplete: false,
64- autosave: true
64+ autosave: true,
6565};
6666
67- const applySavedSettings = (savedSettings: PartialDeep<Settings >) => {
68- return {...settings, ...savedSettings};
69- }
67+ const applySavedSettings = (savedSettings: PartialDeep<typeof settings >) => (
68+ {...settings, ...savedSettings, textEditor: {...settings.textEditor , ...savedSettings.textEditor}}
69+ );
7070
7171settings = applySavedSettings({textEditor: {fontWeight: 500}});
7272```
@@ -76,13 +76,15 @@ By default, this does not affect elements in array and tuple types. You can chan
7676```
7777import type {PartialDeep} from 'type-fest';
7878
79- type Settings = {
80- languages: string[ ];
81- }
79+ type Shape = {
80+ dimensions: [number, number ];
81+ };
8282
83- const partialSettings : PartialDeep<Settings , {recurseIntoArrays: true}> = {
84- languages : [undefined]
83+ const partialShape : PartialDeep<Shape , {recurseIntoArrays: true}> = {
84+ dimensions : [], // OK
8585};
86+
87+ partialShape.dimensions = [15]; // OK
8688```
8789
8890@see {@link PartialDeepOptions }
0 commit comments