如何通过typescript中的泛型类型获取可选参数

时间:2018-06-16 10:27:06

标签: typescript typescript-typings

我在打字稿中有这样的函数:

 let vc = self.storyboard?.instantiateViewController(withIdentifier: "verifySMSView") as! SMSVerificationViewController
            vc.delegate = self
            self.present(vc, animated: true, completion: nil)

我希望在提供通用类型function foo<P>(param: P) { // ... } 时,然后需要P

param

如果不提供通用类型foo<string>('bar') ,则不需要P

param

但是在打字稿中,当调用foo() 时,ts会抛出错误:foo()

如果我[ts] Expected 1 arguments, but got 0.可选择param,那么在调用function foo<P>(param?: P) {}时它不会抛出错误。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

您可以使用function overloads

function foo(): void;
function foo<P>(param: P): void;
function foo(param?: any) {
  // ...
}