TypeScript Version: 3.1.0-dev.20180818
Search Terms: description file class type interface implements
Code
export type LibObjectType = 'Circle' | 'Square';
export interface LibObject {
readonly type: LibObjectType;
readonly id: number;
}
export class LibCircle implements LibObject {
readonly type = 'Circle';
readonly id: number = Date.now();
}
export class LibSquare implements LibObject {
readonly type = 'Square';
readonly id: number = Date.now();
}
Expected behavior:
// index.d.ts
export declare class LibCircle implements LibObject {
readonly type: 'Circle';
readonly id: number;
}

Actual behavior:
// index.d.ts
export declare class LibCircle implements LibObject {
readonly type: string;
readonly id: number;
}

Playground Link:
https://github.com/ZSkycat/issue-typescript-20180821-1
Related Issues: