@@ -392,8 +392,8 @@ The declarations and changes you need to add to your existing files are:
392
392
// attribute declarations here, as usual
393
393
}) {}
394
394
395
- declare module ' ember-data' {
396
- interface ModelRegistry {
395
+ declare module ' ember-data/types/registries/model ' {
396
+ export default interface ModelRegistry {
397
397
' user-meta' : UserMeta ;
398
398
}
399
399
}
@@ -408,8 +408,8 @@ The declarations and changes you need to add to your existing files are:
408
408
// properties and methods
409
409
}
410
410
411
- declare module ' ember-data' {
412
- interface AdapterRegistry {
411
+ declare module ' ember-data/types/registries/adapter ' {
412
+ export default interface AdapterRegistry {
413
413
' user-meta' : UserMeta ;
414
414
}
415
415
}
@@ -424,12 +424,29 @@ The declarations and changes you need to add to your existing files are:
424
424
// properties and methods
425
425
}
426
426
427
- declare module ' ember-data' {
428
- interface SerializerRegistry {
427
+ declare module ' ember-data/types/registries/serializer ' {
428
+ export default interface SerializerRegistry {
429
429
' user-meta' : UserMeta ;
430
430
}
431
431
}
432
432
```
433
+
434
+
435
+ * Transforms
436
+
437
+ ``` ts
438
+ import DS from ' ember-data' ;
439
+
440
+ export default class ColorTransform extends DS .Transform {
441
+ // properties and methods
442
+ }
443
+
444
+ declare module ' ember-data/types/registries/transform' {
445
+ export default interface TransformRegistry {
446
+ color: ColorTransform ;
447
+ }
448
+ }
449
+ ```
433
450
434
451
In addition to the registry, note the oddly defined class for ` DS.Model ` s. This is because we need to set up the attribute bindings on the prototype (for a discussion of how and why this is different from class properties, see [ Typing Your Ember, Update, Part 2] [ pt2 ] ), but we cannot just use a ` const ` here because we need a named type—like a class!—to reference in the type registry and elsewhere in the app.
435
452
@@ -442,16 +459,18 @@ Also notice that unlike with service and controller injections, there is no unsa
442
459
``` ts
443
460
import DS from ' ember-data' ;
444
461
445
- declare module ' ember-data' {
446
- interface ModelRegistry {
462
+ declare module ' ember-data/types/registries/model ' {
463
+ export default interface ModelRegistry {
447
464
[key : string ]: DS .Model ;
448
465
}
449
-
450
- interface AdapterRegistry {
466
+ }
467
+ declare module ' ember-data/types/registries/adapter' {
468
+ export default interface AdapterRegistry {
451
469
[key : string ]: DS .Adapter ;
452
470
}
453
-
454
- interface SerializerRegistry {
471
+ }
472
+ declare module ' ember-data/types/registries/serializer' {
473
+ export default interface SerializerRegistry {
455
474
[key : string ]: DS .Serializer ;
456
475
}
457
476
}
@@ -472,8 +491,8 @@ This happens because the types for Ember's _test_ tooling includes the types for
472
491
** The fix:** add a declaration like this in a new file named ` ember-data.d.ts ` in your ` types ` directory:
473
492
474
493
``` ts
475
- declare module ' ember-data' {
476
- interface ModelRegistry {
494
+ declare module ' ember-data/types/registries/model ' {
495
+ export default interface ModelRegistry {
477
496
[key : string ]: any ;
478
497
}
479
498
}
0 commit comments