agiledigital-labs / agiledigital-labs/eslint-plugin-total-functions
no-unsafe-readonly-mutable-assignment failing to identify a ReadonlyShallow correctly
- Dominant language
- TypeScript
- Stars
- 92
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
This is working:
```ts
type Thing = { a: string };
type OtherThing = { readonly a: string };
// This is correctly inferred to be ReadonlyShallow
type ThingArray = readonly Thing[];
// This is correctly inferred to be ReadonlyDeep
type OtherThingArray = readonly OtherThing[];
// ReadonlyDeep
declare const a: OtherThingArray;
// Flagged (ReadonlyDeep -> ReadonlyShallow)
const b: ThingArray = a;
```
But this isn't:
```ts
type Thing = { a: string };
type OtherThing = { readonly a: string };
// ReadonlyDeep
declare const a: readonly OtherThing[];
// Not flagged (it thinks readonly Thing[] is ReadonlyDeep when it should be ReadonlyShallow)
const b: readonly Thing[] = a;
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.