Adding tests

This commit is contained in:
Anders Hejlsberg 2016-01-25 11:46:23 -08:00
parent 0b1f0d867e
commit 77d174a314
2 changed files with 88 additions and 0 deletions

View file

@ -0,0 +1,67 @@
// @target: es5
interface X {
readonly a: number;
readonly b?: number;
}
var x: X = { a: 0 };
x.a = 1; // Error
x.b = 1; // Error
class C {
readonly a: number;
readonly b = 1;
get c() { return 1 }
constructor() {
this.a = 1; // Ok
this.b = 1; // Ok
this.c = 1; // Error
const f = () => {
this.a = 1; // Error
this.b = 1; // Error
this.c = 1; // Error
}
}
foo() {
this.a = 1; // Error
this.b = 1; // Error
this.c = 1; // Error
}
}
var o = {
get a() { return 1 },
get b() { return 1 },
set b(value) { }
};
o.a = 1; // Error
o.b = 1;
var p: { readonly a: number, b: number } = { a: 1, b: 1 };
p.a = 1; // Error
p.b = 1;
var q: { a: number, b: number } = p;
q.a = 1;
q.b = 1;
enum E {
A, B, C
}
E.A = 1; // Error
namespace N {
export const a = 1;
export let b = 1;
export var c = 1;
}
N.a = 1; // Error
N.b = 1;
N.c = 1;
let xx: { readonly [x: string]: string };
let s = xx["foo"];
xx["foo"] = "abc"; // Error
let yy: { readonly [x: number]: string, [x: string]: string };
yy[1] = "abc"; // Error
yy["foo"] = "abc";

View file

@ -0,0 +1,21 @@
// @module: commonjs
// @filename: a.ts
export var x = 1;
var y = 1;
export { y };
// @filename: b.ts
import { x, y } from "./a";
import * as a1 from "./a";
import a2 = require("./a");
const a3 = a1;
x = 1; // Error
y = 1; // Error
a1.x = 1; // Error
a1.y = 1; // Error
a2.x = 1;
a2.y = 1;
a3.x = 1;
a3.y = 1;