ember-cli-typescript icon indicating copy to clipboard operation
ember-cli-typescript copied to clipboard

Add type-information for the `cached` decorator

Open boris-petrov opened this issue 3 years ago • 1 comments
trafficstars

Which package(s) does this enhancement pertain to?

  • [ ] @types/ember
  • [ ] @types/ember__string
  • [ ] @types/ember__polyfills
  • [ ] @types/ember__object
  • [ ] @types/ember__utils
  • [ ] @types/ember__array
  • [ ] @types/ember__engine
  • [ ] @types/ember__debug
  • [ ] @types/ember__runloop
  • [ ] @types/ember__error
  • [ ] @types/ember__controller
  • [ ] @types/ember__component
  • [ ] @types/ember__routing
  • [ ] @types/ember__application
  • [ ] @types/ember__test
  • [ ] @types/ember__test-helpers
  • [ ] @types/ember__service
  • [ ] @types/ember-data
  • [ ] @types/rsvp
  • [x] Other
  • [ ] I don't know

Please write a user story for this feature

import { cached } from '@glimmer/tracking'; leads to Module '"@glimmer/tracking"' has no exported member 'cached'.. As of Ember 4 the cached decorator is available by default.

I currently work-around that issue by adding:

declare module '@glimmer/tracking' {
  export const cached: PropertyDecorator;
}

boris-petrov avatar Feb 15 '22 13:02 boris-petrov

Thanks for writing this up, @boris-petrov. As per the usual flow, we need it documented in Ember itself, and then a PR to DefinitelyTyped will be very welcome and we'll merge it!

chriskrycho avatar Mar 15 '22 02:03 chriskrycho

It is in the docs since Ember 4.5: https://api.emberjs.com/ember/4.5/functions/@glimmer%2Ftracking/cached

andreyfel avatar Jun 27 '23 09:06 andreyfel

Just a note for posterity here, @glimmer/tracking's types aren't managed in DT—it ships its own declarations, and there's an issue over their noting the missing export: https://github.com/glimmerjs/glimmer.js/issues/408

dfreeman avatar Jul 26 '23 15:07 dfreeman

Thanks, @dfreeman! In that case, I guess this one can be closed! :)

boris-petrov avatar Jul 26 '23 18:07 boris-petrov