我在打字稿中有这样的函数:
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) {}
时它不会抛出错误。
我怎样才能让它发挥作用?
答案 0 :(得分:1)
您可以使用function overloads:
function foo(): void;
function foo<P>(param: P): void;
function foo(param?: any) {
// ...
}