class Foo<T>
{
//上面已经写了几百个函数和变量了。
//突然想到,如果T是number类型的话,可以有一个foo函数就好了
//但是如果T不是number类型的话,希望调用foo能被禁止。
foo(){
}
}
我希望只有当T
是number
的时候,foo
才能被调用。否则调用foo
就是错误可以吗?
有个简单的办法是:
class Foo<T>
{
foo: T extends number ? () => void : never = (() =>
{
}) as any;
}
但是我希望使用最上面示例的那种一般的方法定义的语法。因为这种方法定义函数的时候,语法奇葩,需要as any,还没有定义在prototype上面。