Skip to content

Latest commit

 

History

History
25 lines (19 loc) · 1.19 KB

defaultValues.md

File metadata and controls

25 lines (19 loc) · 1.19 KB

Default Values

Always having to specify all the values when creating a model can be burdensome on consumers. To lessen the pain, you can specify default values, where appropriate. In these cases, the consumer is only required to pass to fromJS an object that contains properties in the ModelType that do not have default values.

The default values are known based on their name. For instance, if you have a file user.js that exports UserModelType, then you would name the default values as userDefaultValues. For example, given the following ModelType with default values specified:

export type UserModelType = {
  firstName: string,
  lastName: string,
  isBetaTester: boolean,
};

const defaultUserValues: $Shape<UserModelType> = {
  isBetaTester: false,
};

Then consumers are not required to specify the isBetaTester property, like this:

const user = User.fromJS({ first: 'Tom', last: 'Occhino' });
console.log(user.isBetaTester); // prints false

Default values are useful for properties with sensible defaults and often times with collections. For example, an object map can be defaulted with an empty object {} and an Array can, likewise, be defaulted with an empty array [].