A Record.Factory is created by the Record() function. Record instances are created by passing it some of the accepted values for that Record type:

type Record.Factory<TProps>


// makePerson is a Record Factory function const makePerson = Record({ name: null, favoriteColor: 'unknown' }); // alan is a Record instance const alan = makePerson({ name: 'Alan' });run it

Note that Record Factories return Record<TProps> & Readonly<TProps>, this allows use of both the Record instance API, and direct property access on the resulting instances:

// Use the Record API console.log('Record API: ' + alan.get('name')) // Or direct property access (Readonly) console.log('property access: ' + it

Flow Typing Records:

Use the RecordFactory<TProps> Flow type to get high quality type checking of Records:

import type { RecordFactory, RecordOf } from 'immutable'; // Use RecordFactory<TProps> for defining new Record factory functions. type PersonProps = { name: ?string, favoriteColor: string }; const makePerson: RecordFactory<PersonProps> = Record({ name: null, favoriteColor: 'unknown' }); // Use RecordOf<T> for defining new instances of that Record. type Person = RecordOf<PersonProps>; const alan: Person = makePerson({ name: 'Alan' });



values?: Partial<TProps> | Iterable<[string, unknown]>
): Record<TProps> & Readonly<TProps>



The name provided to Record(values, name) can be accessed with displayName.

displayName: string
This documentation is generated from immutable.d.ts. Pull requests and Issues welcome.