Use {..} to describe object types that must contain some fields but may contain additional fields.
{..}
type named<'a> = {.."name": string} as 'a let getName: named<_> => string = obj => obj["name"] let name = getName({"name": "Ada", "age": 36})
Object