When you create a required field, the schema should reflect that and make the corresponding GraphQL field non-nullable.
Using TypeScript with all the fields being nullable forces you to extensively narrow-type everything or use optional chaining where you might not want to.
This could be accompanied by a prompt for migrating old records that do not have a value for a newly added required field.
That said, if you are using DatoCMS for pre-rending (where the data is being retrieved at build time), having an empty required field is out of the question. Therefore, enabling non-nullable fields without a migration prompt is very much possible for these use cases.