File: optionalPropertiesTest.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 (72 lines) | stat: -rw-r--r-- 1,528 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//// [optionalPropertiesTest.ts]
var x: {p1:number; p2?:string; p3?:{():number;};};

interface IFoo
{
    id: number;
    name?: string;
    print?(): void;
}


var foo: IFoo;
foo = { id: 1234 };                // Ok
foo = { id: 1234, name: "test" };  // Ok
foo = { name: "test" };            // Error, id missing
foo = {id: 1234, print:()=>{}}	   // Ok

var s = foo.name || "default";
if (foo.print !== undefined) foo.print();

interface i1 { M: () => void; };
interface i2 { M?: () => void; };
interface i3 { M: number; };
interface i4 { M?: number; };

var test1: i1 = {};
var test2: i3 = {};
var test3: i2 = {};
var test4: i4 = {};
var test5: i1 = { M: function () { } };
var test6: i3 = { M: 5 };
var test7: i2 = { M: function () { } };
test7 = {};
var test8: i4 = { M: 5 }
test8 = {};
var test9_1: i2;
var test9_2: i1;
test9_1 = test9_2;
var test10_1: i1;
var test10_2: i2;
test10_1 = test10_2;

//// [optionalPropertiesTest.js]
var x;
var foo;
foo = { id: 1234 }; // Ok
foo = { id: 1234, name: "test" }; // Ok
foo = { name: "test" }; // Error, id missing
foo = { id: 1234, print: function () { } }; // Ok
var s = foo.name || "default";
if (foo.print !== undefined)
    foo.print();
;
;
;
;
var test1 = {};
var test2 = {};
var test3 = {};
var test4 = {};
var test5 = { M: function () { } };
var test6 = { M: 5 };
var test7 = { M: function () { } };
test7 = {};
var test8 = { M: 5 };
test8 = {};
var test9_1;
var test9_2;
test9_1 = test9_2;
var test10_1;
var test10_2;
test10_1 = test10_2;