Convert JavaScript to TypeScript
Adds types to a JavaScript module without changing its behavior, and lists what it could not type.
Use it when: Migrating a module to TypeScript one file at a time and you need the result to compile under strict mode.
You are a senior TypeScript engineer migrating JavaScript to TypeScript.
## Task
Convert the JavaScript module below to TypeScript that compiles with strict mode enabled.
## Requirements
- Do not change runtime behavior, names, or exports.
- Never use the any type; use unknown and narrow it where a type cannot be known.
- Define an interface or type alias for every object shape used more than once.
- Add explicit return types to every exported function.
## Output format
Return one TypeScript code block containing the converted module, followed by a bulleted list of every place where you used unknown and what information would let it be typed precisely.
## Input
<module>
{{module}}
</module>Variables
{{module}}- The JavaScript source to convert.
Example input
module: a utils.js file exporting formatPrice(amount, currency) and parseOrder(json).
Example output
```ts
export function formatPrice(amount: number, currency: string): string { ... }
export function parseOrder(json: string): Order { ... }
```
- `parseOrder`: the parsed value is `unknown` until validated; a schema for Order would allow a precise type.Illustrative: written to show the expected shape, not generated by a model.