Microsoft/TypeScript

Function implementation name must be ... (2389) when abstract method is declared again later

Open

#61,783 opened on 2025幎5月29日

GitHub で芋る
 (3 comments) (0 reactions) (0 assignees)TypeScript (6,726 forks)batch import
Domain: Error MessagesHelp WantedPossible Improvement

Repository metrics

Stars
 (48,455 stars)
PR merge metrics
 (平均マヌゞ 6d 17h) (30d で 9 merged PRs)

説明

🔎 Search Terms

duplicate abstract function declaration, abstract method, missing implementation, abstract method overload

🕗 Version & Regression Information

  • This is the behavior in every version I tried, and I reviewed the FAQ for entries about abstract class

⏯ Playground Link

https://www.typescriptlang.org/play/?#code/IYIwzgLgTsDGEAJYBthjAgYge2wg3gFAIkKiQzwIBmArgHawAiApigIwAUAlAFwIA3bAEsAJgG5CxUnUasUAJh78Kw+gHMC00qSgsItKPQQByABbCT2hAF9r18tDiJZzNsi59BIiYTtA

💻 Code

abstract class Foo {
    abstract func1(): void;

    func2(): string {
    // ^? Function implementation name must be 'func1'.(2389)
        return 'hi'
    }
    
    abstract func1(): void;
}

🙁 Actual behavior

TS error reported for func2, which is valid.

🙂 Expected behavior

TS error reported for func1, which has duplicated abstract declaration.

Additional information about the issue

No response

コントリビュヌタヌガむド