Skip to content

Strictify on all layers #23542

@turt2live

Description

@turt2live

Why?

The non-strict aspects of TypeScript allow for a lot of flexibility but also make it easy for errors to slip in, e.g. when there is no strong contract on null-ness.

What?

We’ll fix all existing strict-mode violations and enable all strict-mode checks to run on PRs. This will allow us to eliminate entire classes of errors through static code analysis.

Reference: https://www.typescriptlang.org/tsconfig#strict

Plan

### matrix-js-sdk
- [x] Enable `strict` in matrix-js-sdk
### matrix-react-sdk
- [x] Enable `noImplicitThis` in matrix-react-sdk
- [x] Enable `strictBindCallApply` in matrix-react-sdk
- [x] Enable `alwaysStrict` in matrix-react-sdk
- [ ] https://github.com/vector-im/element-web/issues/21968
- [ ] https://github.com/vector-im/element-web/issues/21967
- [x] Enable `strictFunctionTypes` in matrix-react-sdk
- [x] Enable `strictPropertyInitialization` in matrix-react-sdk
- [x] Enable `useUnknownInCatchVariables` in matrix-react-sdk
- [x] Enable `noUnusedLocals` in matrix-react-sdk
- [x] Enable `strict` in matrix-react-sdk
### element-web
- [x] Enable `noImplicitThis` in element-web
- [x] Enable `strictBindCallApply` in element-web
- [x] Enable `alwaysStrict` in element-web
- [x] Enable `noImplicitAny` in element-web
- [x] Enable `strictNullChecks` in element-web
- [x] Enable `strictFunctionTypes` in element-web
- [x] Enable `strictPropertyInitialization` in element-web
- [x] Enable `useUnknownInCatchVariables` in element-web
- [x] Enable `noUnusedLocals` in element-web
- [x] Enable `strict` in element-web
### element-desktop
- [x] Enable `strict` in element-desktop

Metadata

Metadata

Assignees

Labels

Help WantedExtra attention is neededT-EpicIssue is at Epic levelT-TaskTasks for the team like planning

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions