For example, if a data path is nullable, `replaceDataOnPath` will fail on processing types. ```js data: { info: { field?: { value: string } } } replaceDataOnPath(['info', 'field', 'value'], 'xxx') // fails, and very hard to tweak with any types ```