43 lines
No EOL
1.8 KiB
Text
43 lines
No EOL
1.8 KiB
Text
tests/cases/compiler/arrayAssignmentTest5.ts(23,17): error TS2322: Type 'IToken[]' is not assignable to type 'IStateToken[]'.
|
|
Type 'IToken' is not assignable to type 'IStateToken'.
|
|
Property 'state' is missing in type 'IToken'.
|
|
|
|
|
|
==== tests/cases/compiler/arrayAssignmentTest5.ts (1 errors) ====
|
|
module Test {
|
|
interface IState {
|
|
}
|
|
interface IToken {
|
|
startIndex: number;
|
|
}
|
|
interface IStateToken extends IToken {
|
|
state: IState;
|
|
}
|
|
interface ILineTokens {
|
|
tokens: IToken[];
|
|
endState: IState;
|
|
}
|
|
interface IAction {
|
|
}
|
|
interface IMode {
|
|
onEnter(line:string, state:IState, offset:number):IAction;
|
|
tokenize(line:string, state:IState, includeStates:boolean):ILineTokens;
|
|
}
|
|
export class Bug implements IMode {
|
|
public onEnter(line:string, state:IState, offset:number):IAction {
|
|
var lineTokens:ILineTokens= this.tokenize(line, state, true);
|
|
var tokens:IStateToken[]= lineTokens.tokens;
|
|
~~~~~~
|
|
!!! error TS2322: Type 'IToken[]' is not assignable to type 'IStateToken[]'.
|
|
!!! error TS2322: Type 'IToken' is not assignable to type 'IStateToken'.
|
|
!!! error TS2322: Property 'state' is missing in type 'IToken'.
|
|
if (tokens.length === 0) {
|
|
return this.onEnter(line, tokens, offset); // <== this should produce an error since onEnter can not be called with (string, IStateToken[], offset)
|
|
}
|
|
}
|
|
public tokenize(line:string, state:IState, includeStates:boolean):ILineTokens {
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|