<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [recogn-parse](./recogn-parse.md) &gt; [Recognizer](./recogn-parse.recognizer.md)

## Recognizer class

识别器

**Signature:**

```typescript
export declare class Recognizer<Options = any> 
```

## Remarks

负责识别操作，所有的识别逻辑都是由该类来完成的。

每次执行识别操作时，会按照如下顺序调用鉴定者：

1. 依次执行前置鉴定者列表 `preJudgers` 中的鉴定者，如果有鉴定成功的，则会停止后续的前置鉴定者的执行，并将鉴定结果 传给后续流程。

2. 如果提供了 name，则会在 命名的鉴定者 中查找 name 对应的鉴定者，然后执行指定的鉴定者。然后 跳到 步骤 5。

3. 如果没有提供 name，则会执行 匿名的鉴定者列表。如果有鉴定结果，则会 跳到 步骤 5。

4. 否则，则会执行 所有的命名鉴定者。如果有鉴定结果，则会 跳到 步骤 5。

5. 依次执行后置鉴定者列表 `postJudgers` 中的鉴定者，如果有鉴定成功的，则会停止后续的后置鉴定者的执行，并返回 鉴定结果。否则返回 空；

## Properties

<table><thead><tr><th>

Property


</th><th>

Modifiers


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

[allJudgers](./recogn-parse.recognizer.alljudgers.md)


</td><td>

`readonly`


</td><td>

[Judger](./recogn-parse.judger.md)<!-- -->&lt;Options&gt;\[\]


</td><td>

所有的鉴定者


</td></tr>
<tr><td>

[judgers](./recogn-parse.recognizer.judgers.md)


</td><td>

`readonly`


</td><td>

[Judger](./recogn-parse.judger.md)<!-- -->&lt;Options&gt;\[\]


</td><td>

匿名的鉴定者列表


</td></tr>
<tr><td>

[namedJudgers](./recogn-parse.recognizer.namedjudgers.md)


</td><td>

`readonly`


</td><td>

Map&lt;string, [SerialJudger](./recogn-parse.serialjudger.md)<!-- -->&lt;Options&gt;&gt;


</td><td>

命名的鉴定者


</td></tr>
<tr><td>

[postJudgers](./recogn-parse.recognizer.postjudgers.md)


</td><td>


</td><td>

[Judger](./recogn-parse.judger.md)<!-- -->&lt;Options&gt;\[\]


</td><td>

后置鉴定者


</td></tr>
<tr><td>

[preJudgers](./recogn-parse.recognizer.prejudgers.md)


</td><td>


</td><td>

[Judger](./recogn-parse.judger.md)<!-- -->&lt;Options&gt;\[\]


</td><td>

前置鉴定者


</td></tr>
</tbody></table>

## Methods

<table><thead><tr><th>

Method


</th><th>

Modifiers


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

[add(judge, name)](./recogn-parse.recognizer.add.md)


</td><td>


</td><td>

添加鉴定者


</td></tr>
<tr><td>

[addJudgers(judgers)](./recogn-parse.recognizer.addjudgers.md)


</td><td>


</td><td>

添加多个鉴定者


</td></tr>
<tr><td>

[recogn(target, targetOptions, name)](./recogn-parse.recognizer.recogn.md)


</td><td>


</td><td>

识别目标


</td></tr>
<tr><td>

[recognAsync(target, targetOptions, name)](./recogn-parse.recognizer.recognasync.md)


</td><td>


</td><td>

异步识别


</td></tr>
<tr><td>

[remove(judger)](./recogn-parse.recognizer.remove.md)


</td><td>


</td><td>

删除 指定的 judger


</td></tr>
<tr><td>

[removeByName(name)](./recogn-parse.recognizer.removebyname.md)


</td><td>


</td><td>

移除指定名字的鉴定者


</td></tr>
<tr><td>

[removeJudges(judges)](./recogn-parse.recognizer.removejudges.md)


</td><td>


</td><td>

批量删除


</td></tr>
</tbody></table>
