- Error
- Reported by the lexer and parser
TS8008
Type aliases can only be used in TypeScript files.
A `type` alias appears in a JavaScript file. Use a JSDoc `@typedef` or move it to a .ts file.
What it means
type Name = ... declarations 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
type Id = string;
cargo run -p ts_r_parser --example dump -- index.js --ts-in-js report ts-r outputindex.js(1,6): error TS8008: Type aliases can only be used in TypeScript files.
Recorded by node scripts/verify-examples.mjs with ts-r built from commit 6deaf01. The example uses the default tsconfig: strict, target: es2022, module: esnext, moduleResolution: bundler.
How to fix
- Write it as JSDoc:
/** @typedef {string} Id */. - Move it to a
.tsor.d.tsfile.