diff --git a/packages/@ember/routing/route.ts b/packages/@ember/routing/route.ts index 9fe668a6e5f..94e3d15ea58 100644 --- a/packages/@ember/routing/route.ts +++ b/packages/@ember/routing/route.ts @@ -335,7 +335,7 @@ class Route extends EmberObject.extend(ActionHandler, Evented) @since 1.0.0 @public */ - serialize(model: Model | undefined, params: string[]): { [key: string]: unknown } | undefined { + serialize(model: Model, params: string[]): { [key: string]: unknown } | undefined { if (params.length < 1 || !model) { return; } diff --git a/type-tests/@ember/routing-test/route.ts b/type-tests/@ember/routing-test/route.ts index d46c61cb460..afdf1e1831b 100755 --- a/type-tests/@ember/routing-test/route.ts +++ b/type-tests/@ember/routing-test/route.ts @@ -35,6 +35,27 @@ class ModelTest extends Route { } } +class Model { + baseClass = true; +} + +class Child extends Model { + baseClass = false; + extraStuff = true; +} + +class FooRoute extends Route { + serialize(object: T): any { + return null; + } +} + +class FooChildRoute extends FooRoute { + serialize(object: Child) { + return object.extraStuff; + } +} + class QPsTest extends Route { queryParams = { memberQp: { refreshModel: true },