Avoid unsafe declaration merging

Metadata

ID: typescript-best-practices/no-unsafe-declaration-merging

Language: TypeScript

Severity: Error

Category: Error Prone

Description

Do not merge class and interface declarations. The compiler won’t check property initialization, which might lead to runtime errors.

Non-Compliant Code Examples

interface Foo {}
class Foo {}

Compliant Code Examples

interface Foo {}
class Bar implements Foo {}

namespace Baz {}
namespace Baz {}
enum Baz {}

namespace Qux {}
function Qux() {}