@@ -34,53 +34,93 @@ Wagon.prototype.load = function (supplies) {
3434>load : Symbol(Wagon.load, Decl(first.js, 10, 1))
3535>supplies : Symbol(supplies, Decl(first.js, 12, 33))
3636}
37+ /** @param {*[]=} supplies - Yep, still a great type */
38+ Wagon.prototype.weight = supplies => supplies ? supplies.length : -1
39+ >Wagon.prototype : Symbol(Wagon.weight, Decl(first.js, 13, 1))
40+ >Wagon : Symbol(Wagon, Decl(first.js, 0, 0), Decl(first.js, 6, 1))
41+ >prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --))
42+ >weight : Symbol(Wagon.weight, Decl(first.js, 13, 1))
43+ >supplies : Symbol(supplies, Decl(first.js, 15, 24))
44+ >supplies : Symbol(supplies, Decl(first.js, 15, 24))
45+ >supplies.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
46+ >supplies : Symbol(supplies, Decl(first.js, 15, 24))
47+ >length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
48+
49+ Wagon.prototype.speed = function () {
50+ >Wagon.prototype : Symbol(Wagon.speed, Decl(first.js, 15, 68))
51+ >Wagon : Symbol(Wagon, Decl(first.js, 0, 0), Decl(first.js, 6, 1))
52+ >prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --))
53+ >speed : Symbol(Wagon.speed, Decl(first.js, 15, 68))
54+
55+ return this.numberOxen / this.weight()
56+ >this.numberOxen : Symbol(Wagon.numberOxen, Decl(first.js, 4, 28))
57+ >this : Symbol(Wagon, Decl(first.js, 0, 0), Decl(first.js, 6, 1))
58+ >numberOxen : Symbol(Wagon.numberOxen, Decl(first.js, 4, 28))
59+ >this.weight : Symbol(Wagon.weight, Decl(first.js, 13, 1))
60+ >this : Symbol(Wagon, Decl(first.js, 0, 0), Decl(first.js, 6, 1))
61+ >weight : Symbol(Wagon.weight, Decl(first.js, 13, 1))
62+ }
3763// ok
3864class Sql extends Wagon {
39- >Sql : Symbol(Sql, Decl(first.js, 13 , 1))
65+ >Sql : Symbol(Sql, Decl(first.js, 18 , 1))
4066>Wagon : Symbol(Wagon, Decl(first.js, 0, 0), Decl(first.js, 6, 1))
4167
4268 constructor() {
4369 super(); // error: not enough arguments
4470>super : Symbol(Wagon, Decl(first.js, 0, 0), Decl(first.js, 6, 1))
4571
4672 this.foonly = 12
47- >this.foonly : Symbol(Sql.foonly, Decl(first.js, 17 , 16))
48- >this : Symbol(Sql, Decl(first.js, 13 , 1))
49- >foonly : Symbol(Sql.foonly, Decl(first.js, 17 , 16))
73+ >this.foonly : Symbol(Sql.foonly, Decl(first.js, 22 , 16))
74+ >this : Symbol(Sql, Decl(first.js, 18 , 1))
75+ >foonly : Symbol(Sql.foonly, Decl(first.js, 22 , 16))
5076 }
5177 /**
5278 * @param {Array.<string>} files
5379 * @param {"csv" | "json" | "xmlolololol"} format
5480 * This is not assignable, so should have a type error
5581 */
5682 load(files, format) {
57- >load : Symbol(Sql.load, Decl(first.js, 19 , 5))
58- >files : Symbol(files, Decl(first.js, 25 , 9))
59- >format : Symbol(format, Decl(first.js, 25 , 15))
83+ >load : Symbol(Sql.load, Decl(first.js, 24 , 5))
84+ >files : Symbol(files, Decl(first.js, 30 , 9))
85+ >format : Symbol(format, Decl(first.js, 30 , 15))
6086
6187 if (format === "xmlolololol") {
62- >format : Symbol(format, Decl(first.js, 25 , 15))
88+ >format : Symbol(format, Decl(first.js, 30 , 15))
6389
6490 throw new Error("please do not use XML. It was a joke.");
6591>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
6692 }
93+ else {
94+ super.speed() // run faster
95+ >super.speed : Symbol(Wagon.speed, Decl(first.js, 15, 68))
96+ >super : Symbol(Wagon, Decl(first.js, 0, 0), Decl(first.js, 6, 1))
97+ >speed : Symbol(Wagon.speed, Decl(first.js, 15, 68))
98+
99+ if (super.weight() < 0) {
100+ >super.weight : Symbol(Wagon.weight, Decl(first.js, 13, 1))
101+ >super : Symbol(Wagon, Decl(first.js, 0, 0), Decl(first.js, 6, 1))
102+ >weight : Symbol(Wagon.weight, Decl(first.js, 13, 1))
103+
104+ // ????????????????????????
105+ }
106+ }
67107 }
68108}
69109var db = new Sql();
70- >db : Symbol(db, Decl(first.js, 31 , 3))
71- >Sql : Symbol(Sql, Decl(first.js, 13 , 1))
110+ >db : Symbol(db, Decl(first.js, 42 , 3))
111+ >Sql : Symbol(Sql, Decl(first.js, 18 , 1))
72112
73113db.numberOxen = db.foonly
74114>db.numberOxen : Symbol(Wagon.numberOxen, Decl(first.js, 4, 28))
75- >db : Symbol(db, Decl(first.js, 31 , 3))
115+ >db : Symbol(db, Decl(first.js, 42 , 3))
76116>numberOxen : Symbol(Wagon.numberOxen, Decl(first.js, 4, 28))
77- >db.foonly : Symbol(Sql.foonly, Decl(first.js, 17 , 16))
78- >db : Symbol(db, Decl(first.js, 31 , 3))
79- >foonly : Symbol(Sql.foonly, Decl(first.js, 17 , 16))
117+ >db.foonly : Symbol(Sql.foonly, Decl(first.js, 22 , 16))
118+ >db : Symbol(db, Decl(first.js, 42 , 3))
119+ >foonly : Symbol(Sql.foonly, Decl(first.js, 22 , 16))
80120
81121// error, can't extend a TS constructor function
82122class Drakkhen extends Dragon {
83- >Drakkhen : Symbol(Drakkhen, Decl(first.js, 32 , 25))
123+ >Drakkhen : Symbol(Drakkhen, Decl(first.js, 43 , 25))
84124>Dragon : Symbol(Dragon, Decl(second.ts, 0, 0))
85125
86126}
0 commit comments