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
|
// https://github.com/microsoft/TypeScript/issues/52329
class Person {
["B"](a: number): string;
["A"](a: string|number): number | string {
return 0;
}
}
let p = new Person();
p.A(0)
p.B(0)
// https://github.com/microsoft/TypeScript/issues/17345
class C {
["foo"](): void
["bar"](): void;
["foo"]() {
return 0;
}
}
declare const uniqueSym: unique symbol;
declare const uniqueSym2: unique symbol;
declare const sym: symbol;
declare const strUnion: 'foo' | 'bar';
class C1 {
[sym](): void; // should error
[uniqueSym2](): void; // should error
[uniqueSym](): void;
[uniqueSym]() { }
}
interface I1 {
[sym](): void; // should error
[uniqueSym2](): void;
[uniqueSym](): void;
[uniqueSym](): void;
}
class C2 {
[strUnion](): void; // should error
[strUnion]() { }
}
class I2 {
[strUnion](): void; // should error
[strUnion]() { }
}
class C3 {
[1](): void; // should error
[2](): void;
[2]() { }
}
interface I3 {
[1](): void;
[2](): void;
[2](): void;
}
|