Closed
Description
TypeScript Version: 2.4.1
Code
namespace Config {
export interface ProblemPattern {
regexp?: string;
file?: number;
location?: number;
line?: number;
column?: number;
endLine?: number;
endColumn?: number;
severity?: number;
code?: number;
message?: number;
loop?: boolean;
}
export interface NamedProblemPattern extends ProblemPattern {
name: string;
label?: string;
}
export type MultiLineProblemPattern = ProblemPattern[];
export interface NamedMultiLineProblemPattern {
name: string;
label?: string;
patterns: MultiLineProblemPattern;
}
}
export interface ProblemPattern {
regexp: RegExp;
file?: number;
message?: number;
location?: number;
line?: number;
character?: number;
endLine?: number;
endCharacter?: number;
code?: number;
severity?: number;
loop?: boolean;
}
export interface NamedProblemPattern extends ProblemPattern {
name: string;
}
export type MultiLineProblemPattern = ProblemPattern[];
export interface NamedMultiLineProblemPattern {
name: string;
label: string;
patterns: MultiLineProblemPattern;
}
class Parser {
constructor() {}
public parse(value: Config.ProblemPattern): ProblemPattern;
public parse(value: Config.MultiLineProblemPattern): MultiLineProblemPattern[];
public parse(value: Config.NamedProblemPattern): NamedProblemPattern;
public parse(value: Config.NamedMultiLineProblemPattern): NamedMultiLineProblemPattern;
public parse(value: Config.ProblemPattern | Config.MultiLineProblemPattern | Config.NamedProblemPattern | Config.NamedMultiLineProblemPattern): any {
}
}
function foo(value: string | Config.ProblemPattern | Config.MultiLineProblemPattern): void {
if (typeof value === 'string') {
//
} else {
let parser = new Parser();
parser.parse(value);
}
}
Expected behavior:
No error message
Actual behavior:
Flags an error on line 73