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;
}