### Required

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileProcessor.ts#L52-L52)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileProcessor.ts#L107-L107)
Invalid type "never" of template literal expression.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileScanner.ts#L5-L5)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/DatePickerModal.tsx#L5-L5)[\[3\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L13-L13)
'moment' import is restricted from being used. The 'moment' package is bundled with Obsidian. Please import it from 'obsidian' instead.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileScanner.ts#L5-L5)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/DatePickerModal.tsx#L5-L5)[\[3\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L13-L13)
'moment' should be listed in the project's dependencies. Run 'npm i -S moment' to add it

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileScanner.ts#L67-L67)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileScanner.ts#L180-L180)[\[3\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceView.tsx#L30-L30)
A method that is not declared with `this: void` may cause unintentional scoping of `this` when separated from its object.
Consider using an arrow function or explicitly `.bind()`ing the method to avoid calling the method with an unintended `this` value. 
If a function does not access `this`, it can be annotated with `this: void`.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/PluginSettingsTab.ts#L22-L22)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/PluginSettingsTab.ts#L125-L125)[\[3\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/PluginSettingsTab.ts#L157-L157)
Use `new Setting(containerEl).setName(...).setHeading()` instead of creating HTML heading elements directly.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/PluginSettingsTab.ts#L97-L97)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/PluginSettingsTab.ts#L130-L130)[\[3\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/PluginSettingsTab.ts#L144-L144)[\[4\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/ExcludedFilesModal.tsx#L23-L23)[\[5\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L36-L36)[\[6\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L43-L43)[\[7\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L50-L50)[\[8\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L185-L185)[\[9\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L199-L199)
Use sentence case for UI text.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/PluginSettingsTab.ts#L175-L179)
Promise returned in function argument where a void return was expected.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L47-L47)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L68-L68)[\[3\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L69-L69)[\[4\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L78-L78)[\[5\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L85-L85)[\[6\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceView.tsx#L22-L22)[\[7\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/DatePickerModal.tsx#L72-L72)[\[8\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/ExcludedFilesModal.tsx#L100-L100)[\[9\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/ExcludedFilesModal.tsx#L100-L100)[\[10\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/ExcludedFilesModal.tsx#L117-L117)[\[11\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L6-L6)[\[12\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L49-L49)[\[13\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L49-L49)[\[14\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L62-L62)[\[15\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L62-L62)[\[16\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L66-L66)[\[17\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L70-L70)[\[18\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L70-L70)[\[19\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L76-L76)[\[20\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L76-L76)[\[21\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L85-L85)[\[22\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L85-L85)[\[23\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L94-L94)[\[24\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L94-L94)[\[25\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L131-L131)
Unexpected any. Specify a different type.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L48-L48)
`onSettingChange` is deprecated. The method should not be used

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L51-L51)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L58-L58)[\[3\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L60-L60)[\[4\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/CleaningServiceModal.tsx#L70-L70)[\[5\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/DatePickerModal.tsx#L82-L82)[\[6\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L38-L38)[\[7\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L45-L45)[\[8\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L52-L52)[\[9\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L64-L64)[\[10\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L102-L102)[\[11\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L123-L128)[\[12\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L176-L176)[\[13\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L276-L276)
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/ExcludedFilesModal.tsx#L44-L44)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/ExcludedFilesModal.tsx#L133-L133)
Expected an assignment or function call and instead saw an expression.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/main.ts#L137-L137)
Async method 'chooseDate' has no 'await' expression.



---

### Optional

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileProcessor.ts#L37-L37)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileProcessor.ts#L43-L43)[\[3\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileProcessor.ts#L92-L92)[\[4\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileProcessor.ts#L98-L98)
Use 'FileManager.trashFile()' instead of 'Vault.trash()' to respect the user's file deletion preference.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileProcessor.ts#L47-L47)[\[2\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/FileProcessor.ts#L102-L102)
Use 'FileManager.trashFile()' instead of 'Vault.delete()' to respect the user's file deletion preference.

[\[1\]](https://github.com/dpvpro/obsidian-cleaning-service/blob/abec69a57d9b972f6044c51d19efc7384371435b/src/Views/Select.tsx#L2-L2)
'Select' is defined but never used.

