Функция перегрузки отличается количеством и типом параметров в Typescript, используя типы Union
Я пытаюсь перегрузить функцию, которая имеет две перегрузки, как показано ниже
getData(): MyModel
getData<T>(type:string):T
Теперь, основываясь на деталях, найденных в блоге, я пытаюсь использовать union types
чтобы обеспечить типы параметров, которые могут принимать вышеуказанные функции.
Случай 1: (здесь нет проблем)
Когда функции имеют параметры, и они отличаются только типами, как показано ниже
getData(type:number): MyModel
getData<T>(type:string):T
getData<T>(type: number|string): MyModel:T {
//implementation
}
Случай 2: (Проблема: Как использовать тип Union в этом случае)
Когда параметры функций различаются по количеству и типам, как показано ниже
getData(): MyModel
getData<T>(type:string):T
Вопросы
- Как пользоваться
Union types
вCase 2
- Если
Union types
не может быть использовано, чем, как перегрузить эти функции (используя Typescript)
1 ответ
Решение
Вам нужно установить параметр как необязательный и использовать тип объединения для типа возвращаемого значения:
class MyClass {
getData(): MyModel;
getData<T>(type: string): T;
getData<T>(type?: string): MyModel | T {
// implementation
}
}