为什么需要两次声明返回类型?

时间:2019-07-10 14:35:14

标签: javascript typescript eslint

我正在构建一个仅用于练习的api。 在我的解决方案中,我想提供某种缓存功能。可以在配置文件中设置其类型,例如写入文件或数据库。

我的问题与'eslint'有关,因为在开发过程中我正在使用打字稿,并且希望在提交之前整理源代码。

在插入过程中,我无法理解此警告消息的要点:

  

9:14警告@ typescript-eslint / explicit-function-return-type函数上的返回类型缺失

我想避免重复,并在正确的地方使用所有内容。

如果我像检查方法一样再次设置返回类型,则消息消失了。但是在那种情况下,我看不到在界面中进行设置的要点。

interface CacheSolution {
  get(key: string): string;
  write(key: string, value: string): void;
  check(key: string): boolean;
}

class CacheIntoDatabase implements CacheSolution {

  public get (key) {
    return 'something';
  }

  public write (key: string, value: string) {

  }

  public check (key: string): boolean {
    return true;
  }

}

ESLINT配置

module.exports = {
  'env': {
    'es6': true,
    'node': true
  },
  'extends': [
      'plugin:@typescript-eslint/recommended'
  ],
  'globals': {
    'Atomics': 'readonly',
    'SharedArrayBuffer': 'readonly'
  },
  'parser':  '@typescript-eslint/parser',
  'parserOptions': {
    'ecmaVersion': 2018,
    'sourceType': 'module'
  },
  'rules': {
    'indent': 'off',
    '@typescript-eslint/indent': ['error', 2]
  }
};

我可以以某种方式解决警告,还是需要尝试与复制一起生活? :)

1 个答案:

答案 0 :(得分:0)

更改此

public write (key: string, value: string) {

对此

public write (key: string, value: string):void {

出现此错误的原因可能与您的lint规则具有要求方法返回类型的规则有关,请参见this answer,以获取更多详细信息。