File: genericInference2.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (33 lines) | stat: -rw-r--r-- 1,067 bytes parent folder | download | duplicates (7)
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
32
33
//// [genericInference2.ts]
    declare module ko { 
       export interface Observable<T> { 
           (): T; 
           (value: T): any; 
           N: number; 
           g: boolean; 
           r: T; 
       } 
       export function observable<T>(value: T): Observable<T>; 
    } 
    var o = { 
       name: ko.observable("Bob"), 
       age: ko.observable(37) 
    }; 
    var x_v = o.name().length;  // should be 'number'
    var age_v = o.age();  // should be 'number'
    var name_v = o.name("Robert");  // should be 'any'
    var zz_v = o.name.N;  // should be 'number'
    var yy_v = o.name.g;  // should be 'boolean'
    var rr_v = o.name.r;  // should be 'string'

//// [genericInference2.js]
var o = {
    name: ko.observable("Bob"),
    age: ko.observable(37)
};
var x_v = o.name().length; // should be 'number'
var age_v = o.age(); // should be 'number'
var name_v = o.name("Robert"); // should be 'any'
var zz_v = o.name.N; // should be 'number'
var yy_v = o.name.g; // should be 'boolean'
var rr_v = o.name.r; // should be 'string'