agiledigital-labs / agiledigital-labs/eslint-plugin-total-functions
[no-unsafe-mutable-readonly-assignment] make exception for array concat parameter `ConcatArray`
- Langage dominant
- TypeScript
- Étoiles
- 92
- Forks
- 5
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
_NB this issue is distinct from (but related to) #100. That issue is about the return type, this is about the parameter type._
Concatenating a mutable array to another array is currently flagged by `no-unsafe-mutable-readonly-assignment`:
```ts
const arr: Array = [""];
const foo: Array = arr.concat(arr); // Flagged by no-unsafe-mutable-readonly-assignment
```
This is strictly correct, because `concat` takes a `ConcatArray` type that has **readonly** length and number index properties:
```ts
interface ConcatArray {
readonly length: number;
readonly [n: number]: T;
join(separator?: string): string;
slice(start?: number, end?: number): T[];
}
```
Even though this is correct (at least strictly speaking) it's not useful, because it cannot lead to surprising mutation in any readonly values.
We should treat this as a special case and ignore it in the `no-unsafe-mutable-readonly-assignment` rule.
**Bonus points**: are there any other methods (especially on the array type) that we should ignore for the same reason?
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Évaluation
Cette issue n'a pas encore été évaluée.