typescript eslint-类型x缺少类型x的以下属性

时间:2020-05-26 01:32:38

标签: typescript eslint nestjs

所以我开始了一个新的nest.js项目,但我仍然坚持给这个错误:

类型'任务[]'缺少类型'任务'的以下属性:ID,标题,描述,状态(2739)

我有一个模特。ts

export interface Task {
    id: string;
    title: string;
    description: string;
    status: TaskStatus
}

export enum TaskStatus {
    OPEN = 'OPEN',
    IN_PROGRESS = 'IN_PROGRESS',
    DONE = 'DONE',
}

和同一文件夹上的服务:

import { Injectable } from '@nestjs/common';
import { Task, TaskStatus } from './task.model';
import { v1 as uuidv1 } from 'uuid';

@Injectable()
export class TasksService {
    private tasks: Task[] = [];

    public getAllTasks(): Task {
        return this.tasks;  <- here
    }

    public createTask(title: string, description: string): Task {
        const task: Task = {
            id: uuidv1(),
            title,
            description,
            status: TaskStatus.OPEN
        };

        this.tasks.push(task);
        return task;
    }
}

方法 getAllTask​​s 返回错误

这是我的护送文件:

module.exports = {
    'env': {
        'es6': true,
        'node': true
    },
    'extends': [
        'eslint:recommended',
        'plugin:@typescript-eslint/eslint-recommended',
        'plugin:@typescript-eslint/recommended'
    ],
    'globals': {
        'Atomics': 'readonly',
        'SharedArrayBuffer': 'readonly'
    },
    'parser': '@typescript-eslint/parser',
    'parserOptions': {
        'ecmaVersion': 11,
        'sourceType': 'module'
    },
    'plugins': [
        '@typescript-eslint'
    ],
    'rules': {
        semi: [2, 'always'],
        indent: ['error', 4],
        "space-before-function-paren": 0,
        "no-unused-vars": 0,
        quotes: [2, "single", { "avoidEscape": true }]
    }
};

我看不到这段代码有任何错误,或者如果我应该在自己的护卫舰上设置新的配置以避免这种情况。

1 个答案:

答案 0 :(得分:3)

私人任务:Task [] = [];

public getAllTask​​s():任务{
返回this.tasks; <-在这里
}

您将在一个预期返回Task[]的函数中返回Task。即更改返回类型以匹配getAllTask(): Task[] {