data
data copied to clipboard
Descendants of 'Model' cannot be upcast
Reproduction
- Clone https://github.com/MathieuCouette/ember-data-issues
- Check out
model-upcasting-issue
- Run
npm install && npm run lint
Description
Implicit upcasting of indirect descendants of Model
does not work when the child has an attribute or relationship that the parent does not.
Source file: https://github.com/MathieuCouette/ember-data-issues/blob/d2b31433b1212b03879288990b763f9299c33e34/app/components/product.ts
Argument of type 'PaymentMethodCcModel' is not assignable to parameter of type 'PaymentMethodModel'.
Types of property 'eachAttribute' are incompatible.
Type '<T>(callback: (this: NoInfer<T> | undefined, key: "last4" | "obfuscatedIdentifier", meta: LegacyAttributeField) => void, binding?: T | undefined) => void' is not assignable to type '<T>(callback: (this: NoInfer<T> | undefined, key: never, meta: LegacyAttributeField) => void, binding?: T | undefined) => void'.
Types of parameters 'callback' and 'callback' are incompatible.
Types of parameters 'key' and 'key' are incompatible.
Type 'string' is not assignable to type 'never'.
Type 'string' is not assignable to type 'never'.
I am guessing that the cause is the same as #9405.
Versions
├── @babel/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember-data-types/[email protected]
├── @ember/[email protected]
├── @ember/[email protected]
├── @ember/[email protected]
├── @glimmer/[email protected]
├── @glimmer/[email protected]
├── @glint/[email protected]
├── @glint/[email protected]
├── @tsconfig/[email protected]
├── @types/[email protected]
├── @types/[email protected]
├── @typescript-eslint/[email protected]
├── @typescript-eslint/[email protected]
├── @warp-drive-types/[email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]