Because some companies sell more than places in the plane and there are places that same sit is given to more than one person and there are situations when last on the line can not get on the place since all places are occupied. It happened for friends of us.
Don't think this works at least in Europe due to regulations. Due to some kind of error, I was bumped from from a flight a year ago, which meant I a) got a free flight the next day b) got the cost of food and a hotel for the night back from the airline, and c) around 80€ flat.
So unless you absolutely have to be there the day of your flight, it is even a pretty good deal to stay.
The cash compensation in Europe if they bump you is 250 - 600 EUR per flight and person, depending on distance. That even applies for significant delays.
To be fair, it can be a hassle to get it. But sometimes, if the airline is clearly at fault not.
And for the record: Every airline overbooks. But usually they find enough volounteers to make it work.
I think this is more an American phenomenon; Ryanair does not systematically do it as far as I know. The EU's passenger rights reg would make this extremely expensive for the airline.
Ryanair absolutely does this. I've been on a flight in the last 3 months that was +2 oversold. Everyone else had checked in online earlier than me and gotten a seat assignment, so I was held at the gate, unable to pass, until the gate was ready to close and they had confirmed they had a seat for me.
The 'rules' state that they're supposed to ask for volunteers, but in this instance, they didn't. I was just withheld from boarding until they confirmed they had a seat for me.
But you can't even get to the gate if you haven't checked in, at which point you get an assigned seat. If you somehow managed to get past the entry point and security without checking in then something went wrong at the airport, not with RyanAir.
I don’t think this is true — every airline that I know of supports “seat assignment at gate” to handle exactly this kind of overbooking.
(How it happens can vary: your PNR might not have a seat assigned, or the seat might have been double booked. Either way, at check-in they’ll typically notify you and let you through regardless, since you have a perfectly valid ticket.)
Same as the sibling comment already stated, I was able to check in, and instead of being assigned seat 24B (or something of that calibre), my boarding pass said “seat assigned at gate”.
I still had a valid boarding pass. Nothing went wrong at the airport, besides Ryanair failing to follow correct overbooking procedure. Fortunately in that instance, had they refused boarding on me, I would have suffered zero inconvenience, and have received 350 euros compensation and a flight the next day. In a way, I wish they had refused me that day.
In my job I do a lot of code reviews and I notice that by using Typescript, devs tend to write worse JavaScript code. I often see that developers are assigning `undefined` to properties in order to clean value or to satisfy badly written TS interface, instead of just using JS `delete` statement. Also a lot of times I see passing `undefined` to methods with optional params, instead of just skipping them. Here some bad practices:
If there is an interface: `interface ISomething { x?: string };` and obj of this interface to have `obj.x = undefined` instead of `delete obj.x`.
Writing methods: `function x(param0, param1?, param2?) {}` to be used as `x(1, undefined, '2');` instead of creating the func as `function x(param0, option: { param1?, param2? })` and using as `x(1, { param2: '2' })`.
Returning undefined from a function: `function x(): undefined { return undefined; }`, instead of `function x(): void { return; }`.
Mixing the meanings of `undefined` and `null`, can bring a lot of troubles for JS devs when they use `Object.keys` or using `arguments` in function. IMHO If we keep that `undefined` means missing while `null` means no value, then we will have better JS code, using: `'x' in obj` instead of `obj.x === undefined` or `typeof obj.x === 'undefined'`, `delete obj.x` instead of `obj.x = undefined`, `obj.x = null` and then `obj.x === null` instead of `obj.x == null`.
You should probably never use delete. Not only it mutates objects but also have perf penalty.
> If there is an interface: `interface ISomething { x?: string };` and obj of this interface to have `obj.x = undefined` instead of `delete obj.x`.
In typescript additional properties are not a problem. Since it is using structural typing. In most cases spread and restructuring are better options for merging/overwriting and deleting. It is safer and easier to reason about.
> Writing methods: `function x(param0, param1?, param2?) {}` to be used as `x(1, undefined, '2');` instead of creating the func as `function x(param0, option: { param1?, param2? })` and using as `x(1, { param2: '2' })`.
I am not fan of creating functions taking options objects as argument. In many cases is better to create specialized functions