0

我正在尝试创建一个ValidatorFn将在代表自定义反应式表单控件的几个组件中使用。我最初的想法是生成一个 TypeScript 类,在那里创建一个(或多个)公共静态函数,然后像这样使用它myFGroup.setValidators(ReactiveValidators.myValidator)

问题是,虽然我在app.moduleReactiveValidators中导入了这个类并将其添加到,但我仍然得到最喜欢的错误:declarations: []

错误 TS2307:找不到模块 'src/app/validators/reactive-validators'

有人可以告诉我我做错了什么吗?此外,这种方法甚至是一个好的方法吗?

4

2 回答 2

1

ValidatorFun 只是一个函数,不需要在任何类中。您可以简单地使用导出的验证器函数创建一个 ts 文件。

export const myValidator: ValidatorFn = /* ... */;
export const myOtherValidator: ValidatorFn = /* ... */;
export function myJustAnotherValidator(/* ... */) { /* ... */ }

你可以像 import { myValidator, myOtherValidator } from '../mypath/reactive-validators'; Or 一样导入它们import * as ReactiveValidators from '../mypath/reactive-validators';

无需模块导入

于 2020-09-08T08:43:55.880 回答
0

根据@dzenesiz,他发现了问题,问题在于导入语法。

正确的导入语句是导入。

{ maxInputLengthValidator } from '../../validators/reactive-validators'

注意相对路径。而且,出于某种原因,VS Code 自动导入使用绝对路径,即错误消息中的路径。我修复了路径,现在它可以工作了

于 2020-09-08T10:08:34.683 回答