typescript eslint - Typ x saknar följande egenskaper från typ x
Så jag startade ett nytt nest.js-projekt, men min eslint fortsätter att ge detta fel:
Typen 'Task[]' saknar följande egenskaper från typen 'Task': id, title, description, statusts(2739)
Jag har en model.ts
export interface Task {
id: string;
title: string;
description: string;
status: TaskStatus
}
export enum TaskStatus {
OPEN = 'OPEN',
IN_PROGRESS = 'IN_PROGRESS',
DONE = 'DONE',
}
och en tjänst på samma mapp:
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;
}
}
metoden getAllTasks returnerar felet
och detta är min eslint-fil:
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 }]
}
};
Jag kan inte se några fel i denna kodsnutt eller om jag borde ställa in en ny konfiguration på min eslint för att undvika detta.
Svar #1
privata uppgifter: Uppgift[]=[];
public getAllTasks(): Task {
return this.tasks; <- här
}
Du returnerar Task[] i en funktion som förväntar sig att returnera Task. D.v.s. ändra returtypen så att den matchar getAllTask(): Task[] {.