# TS8005: 'implements' clauses can only be used in TypeScript files.

> A class in a JavaScript file has an `implements` clause. Remove it, or use JSDoc `@implements`.

## What it means

`implements` clauses are TypeScript syntax and can't appear in a `.js` file.

ts-r's parser reports this code when it reads `.js` files with tsc's rules for TypeScript syntax in JavaScript. `ts-r-check` doesn't report it yet: today it parses `.js` files with the plain JavaScript grammar and reports a syntax error at the same place instead.

## Example

```js
class Logger implements Sink {
  write() {}
}
```

## How to fix

- Remove the clause; JSDoc's `/** @implements {Sink} */` above the class keeps the intent.
- Rename the file to `.ts` if it's meant to be TypeScript.

Source: https://ts-r.dev/errors/TS8005/
