本文整理匯總了TypeScript中glimmer-object.extend函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript extend函數的具體用法?TypeScript extend怎麽用?TypeScript extend使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了extend函數的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: computed
QUnit.test('reopening a parent with a computed property flushes the child', assert => {
let MyClass = EmberObject.extend({
hello: computed(function() {
return "original hello";
})
});
let SubClass = MyClass.extend({
hello: computed(function() {
return this._super();
})
});
let GrandChild = SubClass.extend({
hello: computed(function() {
return this._super();
})
});
MyClass.reopen({
hello: computed(function() {
return this._super() + " new hello";
})
});
let sub: any = GrandChild.create();
assert.equal(sub.hello, "original hello new hello");
});
示例2: function
QUnit.test('Sub-subclass', function() {
let SomeClass = EmberObject.extend({ foo: 'BAR' });
let AnotherClass = SomeClass.extend({ bar: 'FOO' });
let obj: any = new AnotherClass();
equal(obj.foo, 'BAR');
equal(obj.bar, 'FOO');
});
示例3: function
QUnit.test('property name is the same as own prototype property', function() {
let MyClass = EmberObject.extend({
toString() { return 'MyClass'; }
});
equal(MyClass.create().toString(), 'MyClass', 'should inherit property from the arguments of `EmberObject.create`');
});
示例4: reopen
QUnit.test('using reopen() and calling _super where there is not a super function does not cause infinite recursion', function() {
let Taco = EmberObject.extend({
createBreakfast() {
// There is no original createBreakfast function.
// Calling the wrapped _super function here
// used to end in an infinite call loop
this._super.apply(this, arguments);
return 'Breakfast!';
}
});
Taco.reopen({
createBreakfast() {
return this._super.apply(this, arguments);
}
});
let taco: any = Taco.create();
let result;
try {
result = taco.createBreakfast();
} catch(e) {
result = 'Your breakfast was interrupted by an infinite stack error.';
throw e;
}
equal(result, 'Breakfast!');
});
示例5: function
QUnit.test('adds new properties to subclass', function() {
let Subclass: any = EmberObject.extend();
Subclass.reopenClass({
foo() { return 'FOO'; },
bar: 'BAR'
});
equal(Subclass.foo(), 'FOO', 'Adds method');
equal(get(Subclass, 'bar'), 'BAR', 'Adds property');
});
示例6: function
QUnit.test('adds new properties to subclass instance', function() {
let Subclass = EmberObject.extend();
Subclass.reopen({
foo() { return 'FOO'; },
bar: 'BAR'
});
equal(new Subclass()['foo'](), 'FOO', 'Adds method');
equal(get(new Subclass(), 'bar'), 'BAR', 'Adds property');
});