Merge pull request #31333 from mike-north/ember-notify-property-change

[@ember/object] add utility-style notifyPropertyChange
This commit is contained in:
Nathan Shively-Sanders
2018-12-13 09:52:11 -08:00
committed by GitHub
4 changed files with 17 additions and 1 deletions

View File

@@ -478,6 +478,7 @@ export namespace Ember {
const addObserver: typeof EmberObjectObserversNs.addObserver;
const removeObserver: typeof EmberObjectObserversNs.removeObserver;
const get: typeof EmberObjectNs.get;
const notifyPropertyChange: typeof EmberObjectNs.notifyPropertyChange;
const getWithDefault: typeof EmberObjectNs.getWithDefault;
const getProperties: typeof EmberObjectNs.getProperties;
const setProperties: typeof EmberObjectNs.setProperties;

View File

@@ -65,4 +65,11 @@ export class Foo2 extends Ember.Object {
name
});
}
bar() {
Ember.notifyPropertyChange(this, 'name');
Ember.notifyPropertyChange(this); // $ExpectError
Ember.notifyPropertyChange('name'); // $ExpectError
Ember.notifyPropertyChange(this, 'name', 'bar'); // $ExpectError
}
}

View File

@@ -385,6 +385,8 @@ export function defineProperty(
meta?: any
): void;
export function notifyPropertyChange(obj: object, keyName: string): void;
declare module '@ember/utils/-private/types' {
interface TypeLookup {
class: typeof EmberObject;

View File

@@ -1,4 +1,4 @@
import EmberObject, { computed } from "@ember/object";
import EmberObject, { computed, notifyPropertyChange } from "@ember/object";
const LifetimeHooks = EmberObject.extend({
resource: null as {} | null,
@@ -47,6 +47,12 @@ class Foo extends EmberObject {
b: 11
});
}
bar() {
notifyPropertyChange(this, 'name');
notifyPropertyChange(this); // $ExpectError
notifyPropertyChange('name'); // $ExpectError
notifyPropertyChange(this, 'name', 'bar'); // $ExpectError
}
}
// TODO: enable after TS 3.0 https://github.com/typed-ember/ember-cli-typescript/issues/291