我正在创建一个具有类型的生成器,我声明类型的方式是:
export type BuilderInterface<T> = {
[key in keyof T]: (arg: T[key]) => BuilderInterface<T> } & {
build(): T
}
运行ESLint时,它抱怨说:"BuilderInteface" was used before it was defined (no-use-before-define)
。这是正常的,因为我需要断言每个参数函数都返回相同类型的生成器。
在不违反eslint规则的前提下,我必须声明哪些方法?我应该直接忽略该规则吗?为什么?
ESLint是(某种)正确的,因为从技术上讲,您尚未声明类型并且正在使用它。递归类型很难处理。尝试使用TSLint来查看是否更好地了解TypeScript,从而获得更好的结果。
TypeScript团队非常擅长递归类型,因此它是有效的类型。
禁用规则或创建例外,这样工具就可以让您继续工作!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句