File tree 2 files changed +27
-0
lines changed
2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -3233,6 +3233,11 @@ declare module 'ember' {
3233
3233
key : K ,
3234
3234
value : UnwrapComputedPropertySetter < T [ K ] >
3235
3235
) : UnwrapComputedPropertyGetter < T [ K ] > ;
3236
+ function set < T , K extends keyof T > (
3237
+ obj : T ,
3238
+ key : K ,
3239
+ value : T [ K ]
3240
+ ) : T [ K ] ;
3236
3241
/**
3237
3242
* Error-tolerant form of `Ember.set`. Will not blow up if any part of the
3238
3243
* chain is `undefined`, `null`, or destroyed.
@@ -3247,6 +3252,11 @@ declare module 'ember' {
3247
3252
obj : T ,
3248
3253
hash : Pick < UnwrapComputedPropertySetters < T > , K >
3249
3254
) : Pick < UnwrapComputedPropertyGetters < T > , K > ;
3255
+ // TODO: in TS2.9 - Pick<UnwrapComputedPropertySetters<T> | T, K>
3256
+ function setProperties < T , K extends keyof T > (
3257
+ obj : T ,
3258
+ hash : Pick < T , K >
3259
+ ) : Pick < T , K > ;
3250
3260
/**
3251
3261
* Detects when a specific package of Ember (e.g. 'Ember.Application')
3252
3262
* has fully loaded and is available for extension.
Original file line number Diff line number Diff line change @@ -49,3 +49,20 @@ class Foo extends Ember.Object.extend({
49
49
} ) ;
50
50
}
51
51
}
52
+
53
+ export class Foo2 extends Ember . Object {
54
+ name ! : string ;
55
+
56
+ changeName ( name : string ) {
57
+ let a : string = this . set ( 'name' , name ) ;
58
+ let b : number = this . set ( 'name' , name ) ; // $ExpectError
59
+ let x : string = Ember . set ( this , 'name' , name ) ;
60
+ let y : number = Ember . set ( this , 'name' , name ) ; // $ExpectError
61
+ this . setProperties ( {
62
+ name
63
+ } ) ;
64
+ Ember . setProperties ( this , {
65
+ name
66
+ } ) ;
67
+ }
68
+ }
You can’t perform that action at this time.
0 commit comments