persona-community-5/.pnpm-store/v3/files/ec/9faf5ca170e0bb82492ec60c860943c2c7f32a1ec2f6d66a28ffcc971afbe7b67c9fd9686ceebe893a68cef1a18a7a21c608793f2c9b99c6b1e8539c4bad24
rdev-worker a1d0d1bf1c
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
build: /implement-feature community-ui --requirements 'Build the React commu...
2026-02-24 08:22:30 +00:00

54 lines
1.3 KiB
Plaintext

---
description: 'Disallow unused expressions.'
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
> 🛑 This file is source code, not the primary documentation location! 🛑
>
> See **https://typescript-eslint.io/rules/no-unused-expressions** for documentation.
This rule extends the base [`eslint/no-unused-expressions`](https://eslint.org/docs/rules/no-unused-expressions) rule.
It supports TypeScript-specific expressions:
- Marks directives in modules declarations (`"use strict"`, etc.) as not unused
- Marks the following expressions as unused if their wrapped value expressions are unused:
- Assertion expressions: `x as number;`, `x!;`, `<number>x;`
- Instantiation expressions: `Set<number>;`
Although the type expressions never have runtime side effects (that is, `x!;` is the same as `x;`), they can be used to assert types for testing purposes.
## Examples
<Tabs>
<TabItem value="❌ Incorrect">
```ts
Set<number>;
1 as number;
window!;
```
</TabItem>
<TabItem value="✅ Correct">
```ts
function getSet() {
return Set;
}
// Funtion calls are allowed, so type expressions that wrap function calls are allowed
getSet()<number>;
getSet() as Set<unknown>;
getSet()!;
// Namespaces can have directives
namespace A {
'use strict';
}
```
</TabItem>
</Tabs>