function - 如何重载 TypeScript 中的方法?

标签 function oop typescript overloading

我有一个方法,它在签名中获取对象的参数。我想传递对象而不是传递给许多参数,另一方面,我不想更改现有方法的签名,因为它已经在多个地方使用。所以基本上我想要这两种方法。但是当我尝试编写代码时,它给了我错误重复函数实现

    getSearchData(fetchData: FetchData,languageCode: string, sorting: string, maxResultCount: number, skipCount: number): Observable<PagedResultDtoOfFetchData> {

    getSearchData(dataLevel: number, codeType: number, dataCode: string, descLong: string, languageCode: string, dataParent: string, sorting: string, maxResultCount: number, skipCount: number): Observable<PagedResultDtoOfFetchData> {

仅供引用 dataLevel、codeType、dataCode、descLong、dataParentfetchData 的属性。

最佳答案

Typescript 能够重载函数,但与其他 OOP 语言(例如 C++)相比,它有一些特殊性。寻找ref尽管您的方法有不同数量的参数,但我可以通过这样做来避免编译器错误:

class FunOverloadClass {
    getSearchData(dataLevel: number, codeType: number, dataCode: string, descLong: string, languageCode: string, dataParent: string, sorting: string, maxResultCount: number, skipCount: number): Observable<PagedResultDtoOfFetchData>;
    getSearchData(fetchData: FetchData, languageCode: string, sorting: string, maxResultCount: number, skipCount: number): Observable<PagedResultDtoOfFetchData>;

    getSearchData(stringOrNumberParameter: any, secondParam: any, thirdParam: any, fourthParam: any, fifthParam: any, dataParent?: string, sorting?: string, maxResultCount?: number, skipCount?: number): string {
        if (stringOrNumberParameter && typeof stringOrNumberParameter == "number")
            alert("Variant #1: numberParameter = " + stringOrNumberParameter);
        else
            alert("Variant #1: stringParameter = " + stringOrNumberParameter);
    }
}

其中我使用了 dataParent?: string,其中 ?: 运算符指定名为 dataParent 的类型为 string< 的参数可选

关于function - 如何重载 TypeScript 中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46149437/

相关文章:

arrays - 如何删除 TypeScript 中的数组项?

javascript - 将鼠标悬停在所有列表项上,指定项除外

scala - 在 Scala 中编写阶乘尾递归函数

javascript - 想要将变量传递给 Node 异步的 map 方法

调用函数两次后 C++ .exe "has stopped working"

c# - C#创建一个对象时,会在内存中创建一个类中的多少个方法?

java - 不同包中 protected 变量的角色和访问级别

java - 用于基于类型的查询的最佳数据结构是什么?

r - 如何避免在 R 的包装函数中重新列出内部函数参数?

html - 隐藏带有条件的 Primeng 上下文菜单