【发布时间】:2019-02-09 13:20:19
【问题描述】:
有没有办法导入/导出函数重载或其他一些策略来减少文件中实际函数的噪音?例如。一个包含大约 250 行代码的文件,如果我将重载保存在同一个文件中,它肯定会变成 500+。
目前接口和类型函数不是一个选项,因为它们 require casting 用于重载目的时
【问题讨论】:
标签: typescript function overloading
有没有办法导入/导出函数重载或其他一些策略来减少文件中实际函数的噪音?例如。一个包含大约 250 行代码的文件,如果我将重载保存在同一个文件中,它肯定会变成 500+。
目前接口和类型函数不是一个选项,因为它们 require casting 用于重载目的时
【问题讨论】:
标签: typescript function overloading
使用接口和箭头函数
// a.ts
export interface Foo {
// overloads here...
(a: string): string
(): any
}
// b.ts
import {Foo} from './a'
const foo: Foo = (...args: any[]) => ...
foo()
附:您不能使用经典函数来做到这一点,因为在这种情况下,函数重载必须放在实现之前。
【讨论】:
foo()。不,我的回答中没有单一的强制转换或类型断言。
123 as 123 或 {} as any。您所看到的只是设置变量foo 的类型。那有什么问题?你为什么要避免它?