All Type defintion (and interface as well) should persist on output code as an exported value. Better: Add Treeshaking to remove unused type/interface information.
export type Person {
name: string,
age: number,
}
type Car {
regno: string,
speed: number,
}
export type Person {
name: string,
age: number,
}
export type Car {
regno: string,
speed: number,
}
Convert exported function definitions to declarations while specifying input param types and output type.
export function addTwoNumber(a: number, b: number): number {
return a + b;
}
declare function addTwoNumber(a: number, b: number): number;
Convert Classes to Interfaces iterating over constructor
and/or caret expression, and, other public methods.
Better: Avoid publishing life-cycle methods for React.Component
child.
export class DialogWidget extends React.Component<IncomingProps, InternalState> {
componentDidMount() {
window.title = 'Home Page';
}
getCurrentTime(): number {
return Date.now();
}
render() {
return (<h1>Hello World</h1>);
}
}
export interface DialogWidget extends React.Component<IncomingProps, InternalState> {
getCurrentTime(): number;
}