1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
/// <reference path="fourslash.ts" />
//// type MixinCtor<A, B> = new () => A & B & { constructor: MixinCtor<A, B> };
//// function merge<A, B>(a: { prototype: A }, b: { prototype: B }): MixinCtor<A, B> {
//// let merged = function() { }
//// Object.assign(merged.prototype, a.prototype, b.prototype);
//// return <MixinCtor<A, B>><any>merged;
//// }
////
//// class TreeNode {
//// value: any;
//// }
////
//// abstract class LeftSideNode extends TreeNode {
//// abstract right(): TreeNode;
//// left(): TreeNode {
//// return null;
//// }
//// }
////
//// abstract class RightSideNode extends TreeNode {
//// abstract left(): TreeNode;
//// right(): TreeNode {
//// return null;
//// };
//// }
////
//// var obj = new (merge(LeftSideNode, RightSideNode))();
//// obj./**/
verify.completions({ marker: "", exact: ["right", "left", "value", "constructor"] });
|