Skip to content

Implementing an interface suggests any as type #47281

Closed
@bpasero

Description

@bpasero

Bug Report

When you auto implement an interface, I would not expect TypeScript to suggest the any type.

🔎 Search Terms

auto complete

💻 Code

interface OperatingSystem {

}

interface IPathService {
	hasValidBasename(resource: string, basename?: string): Promise<boolean>;
	hasValidBasename(resource: string, os: OperatingSystem, basename?: string): boolean;
}

class PathService implements IPathService {
 // Let TS implement the interface!
}

🙁 Actual behavior

hasValidBasename(resource: string,basename?: string): Promise<boolean>;
hasValidBasename(resource: string,os: OperatingSystem,basename?: string): boolean;
hasValidBasename(resource: any,os?: any,basename?: any): boolean|Promise<boolean> {
	throw new Error("Method not implemented.");
}

🙂 Expected behavior

hasValidBasename(resource: string,basename?: string): Promise<boolean>;
hasValidBasename(resource: string,os: OperatingSystem,basename?: string): boolean;
hasValidBasename(resource: string,os?: arg2: basename | OperatingSystem,basename?: string): boolean|Promise<boolean> {
	throw new Error("Method not implemented.");
}

At the very minimum, put unknown.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions