remove-types
A small library for transforming TypeScript code into JavaScript code in the least destructive way possible. This library exports a single function whose purpose is to preserve everything else about the code except for the actual TypeScript syntax itself. As a result, things like decorators and class fields should pass straight through without being transformed in any way.
Usage
import { removeTypes } from 'remove-types';
const original = `
type AnimalType = 'cat' | 'dog';
// An interface for animals (this comment should be removed when transformed)
interface Animal {
type: AnimalType;
name: string;
age: number;
}
class Cat implements Animal {
type: AnimalType = 'cat';
name: string;
age: number;
constructor(name: string, age: number) {
// This is the name of the animal (this comment should stay)
this.name = name;
this.age = age;
}
}
`;
console.log(await removeTypes(original));
API
removeTypes(code, prettierConfig = true): Promise<string>
Acknowledgements
This library is heavily indebted to cyco130/detype and began as an extraction and refactor of one of its core functions.