我正在尝试创建一个ValidatorFn
,该将用于表示自定义响应式表单控件的几个组件中。我最初的想法是生成一个 TypeScript 类,在那里创建一个(或几个)公共静态函数,然后像这样使用它:myFGroup.setValidators(ReactiveValidators.myValidator)
.
问题是,尽管我在app.module中导入了这个ReactiveValidators
类并将其添加到declarations: []
,但我仍然收到最喜欢的错误:
错误 TS2307:找不到模块"src/app/验证器/反应验证器">
有人可以告诉我我做错了什么吗?另外,这种方法甚至是一种好方法吗?
ValidatorFun 只是一个函数,不需要在任何类中。您可以简单地创建一个带有导出的验证器函数的 ts 文件。
export const myValidator: ValidatorFn = /* ... */;
export const myOtherValidator: ValidatorFn = /* ... */;
export function myJustAnotherValidator(/* ... */) { /* ... */ }
您可以像导入它们一样import { myValidator, myOtherValidator } from '../mypath/reactive-validators';
或import * as ReactiveValidators from '../mypath/reactive-validators';
无需导入模块
根据他发现的问题@dzenesiz,问题在于导入语法。
正确的导入语句是导入。
{ maxInputLengthValidator } from '../../validators/reactive-validators'
请注意相对路径。而且,由于某种原因,VS Code 自动导入使用绝对路径,即错误消息中的路径。我修复了路径,现在它可以工作了