tslint - Typedef i TypeScript-fel: 'förväntad variableDeclarator'


När jag kör tslint på min kod får jag detta fel:

expected variableDeclarator: 'getCode' to have a typedef.

för en TypeScript-fil:

export var getCode = function (param: string): string {
    // ...
};

Hur förbättrar jag detta så att jag inte ser tslint-felet?

Svar #1

Du måste uttryckligen lägga till en typdeklaration till din variabel.

export var getCode : (param: string) => string = function (param: string): string { 
    //...
}

Du sa att detta ser ganska oläsligt ut. Ja, anonyma typer gör TS-kod fulare, särskilt när de är stora. I det fallet kan du deklarera ett anropbart gränssnitt, så här:

export interface CodeGetter {
    (param: string): string;
}

export var getCode: CodeGetter = function(param: string): string { ... }

Du kan kolla om tslint tillåter dig (jag kan inte kolla det just nu) att utelämna typdeklaration i definitionen av funktionen när du använder gränssnittet

export interface CodeGetter {
    (param: string): string;
}

export var getCode: CodeGetter = function(param) { ... }

Relaterade artiklar