TypeScript中的Typedef错误:'expected variableDeclarator'

hom*_*xto 4 typescript tslint

在我的代码上运行tslint我收到此错误:

expected variableDeclarator: 'getCode' to have a typedef.
Run Code Online (Sandbox Code Playgroud)

对于TypeScript文件:

export var getCode = function (param: string): string {
    // ...
};
Run Code Online (Sandbox Code Playgroud)

我如何改进这一点,所以我没有看到tslint错误?

Kub*_*oda 10

您必须明确地向变量添加类型声明.

export var getCode : (param: string) => string = function (param: string): string { 
    //...
}
Run Code Online (Sandbox Code Playgroud)

你说这看起来很不可思议.嗯,是的,匿名类型使TS代码看起来更糟,特别是当它们很大时.在这种情况下,您可以声明一个可调用的接口,如下所示:

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

export var getCode: CodeGetter = function(param: string): string { ... }
Run Code Online (Sandbox Code Playgroud)

您可以在使用界面时检查tslint是否允许您(我现在无法检查)在函数定义中删除类型声明

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

export var getCode: CodeGetter = function(param) { ... }
Run Code Online (Sandbox Code Playgroud)