I am in the process of creating a TypeScript type library for Sencha Touch using JDduck json files. My intention is to define one TypeScript config class as a buddy for each main Sencha Touch class also declared in TypeScript.

The problem is that I started this process with an assumption that all properties in my XxxxxConfig class should be optional (TypeScript has a special syntax for optional class fields). However I notice that for a majority of ST classes the constructor method config parameter is mandatory, which implies some config properties must be supplied on class create.

Looking at the JSON attributes for each config property I cannot see an attribute that indicates which config properties must be supplied during class create.

Can anyone explain this ambiguity?