|
1 | 1 | /* tslint:disable:no-redundant-jsdoc-2 */ |
2 | 2 |
|
3 | | -import { Case as CaseEnum } from "./src/Case"; |
| 3 | +import { Case } from "./src/Case"; |
4 | 4 | import Engine from "./src/Engine"; |
5 | | -import { Gender as GenderEnum } from "./src/Gender"; |
| 5 | +import { Gender } from "./src/Gender"; |
6 | 6 | import { Lemma, LemmaOptions } from "./src/Lemma"; |
| 7 | +import { LocativeForm, LocativeFormAttribute } from "./src/LocativeForm"; |
7 | 8 |
|
8 | 9 | export as namespace RussianNounsJS; |
9 | 10 |
|
10 | | -/** |
11 | | - * Case |
12 | | - */ |
13 | | -export const Case: { [key in keyof typeof CaseEnum]: typeof CaseEnum[key] }; |
14 | | - |
15 | | -/** |
16 | | - * Gender |
17 | | - */ |
18 | | -export const Gender: { [key in keyof typeof GenderEnum]: typeof GenderEnum[key] }; |
| 11 | +export { Case, Gender }; |
19 | 12 |
|
20 | 13 | /** |
21 | | - * Cases |
| 14 | + * Падежи в обычном порядке. |
22 | 15 | */ |
23 | | -export const CASES: Array<typeof CaseEnum[keyof typeof CaseEnum]>; |
| 16 | +export const CASES: [Case]; |
24 | 17 |
|
25 | 18 | /** |
26 | 19 | * Интерфейс с именованными параметрами для создания лемм. |
27 | 20 | * Если параметр — уже лемма, вернет тот же объект, а не копию. |
28 | 21 | * |
29 | | - * Леммы, которые в коде используются много раз, следует |
30 | | - * конструировать через эту функцию, иначе они будут |
31 | | - * неявно конструироваться на каждый вызов любой функции |
32 | | - * или метода в этой библиотеке. |
33 | | - * |
34 | 22 | * @param {RussianNouns.Lemma|Object} o |
35 | | - * @throws {RussianNouns.LemmaException} Ошибки из конструктора леммы. |
| 23 | + * @throws {Error} Ошибки из конструктора леммы. |
36 | 24 | * @returns {RussianNouns.Lemma} Иммутабельный объект. |
37 | 25 | */ |
38 | | -export function createLemma(o: LemmaOptions): Lemma; |
| 26 | +export function createLemma(o: Lemma | LemmaOptions): Lemma; |
39 | 27 |
|
40 | 28 | /** |
41 | | - * Склонение существительного. |
42 | | - * |
43 | | - * Возможные значения: |
44 | | - * + -1 — несклоняемые, в основном заимствованные слова; |
45 | | - * + 0 — разносклоняемые "путь" и "дитя"; |
46 | | - * + 1 — мужской и средний род без окончания; |
47 | | - * + 2 — слова на "а", "я" (м., ж. и общий род); |
48 | | - * + 3 — жен. род без окончания; слова, оканчивающиеся на "мя". |
49 | | - * |
50 | | - * Понятие "склонение" сложно применить к словам pluralia tantum, |
51 | | - * поэтому этот метод возвращает для них undefined. |
| 29 | + * Безопасное создание леммы с минимальными накладными расходами. |
52 | 30 | * |
53 | | - * @param {RussianNouns.Lemma|Object} lemma |
54 | | - * @returns {number|undefined} |
| 31 | + * @param {Object} options |
| 32 | + * @returns {RussianNouns.Lemma|null} |
55 | 33 | */ |
56 | | -export function getDeclension(lemma: Lemma | object): number | undefined; |
| 34 | +export function createLemmaOrNull(options: LemmaOptions): Lemma | null; |
57 | 35 |
|
58 | 36 | /** |
59 | | - * «Названия „первое склонение“ и „второе склонение“ в школьной практике и вузовском преподавании |
60 | | - * нередко закрепляются за разными разрядами слов. В школьных учебниках первым склонением называют изменение |
61 | | - * слов с окончанием -а (вода), во многих вузовских пособиях и академических грамматиках — слов мужского |
62 | | - * рода (стол) и среднего рода (окно)». |
63 | | - * |
64 | | - * Современный русский язык. Морфология — Камынина А.А., 1999, стр. 67 |
65 | | - * |
66 | | - * Почти везде указывают это число. Например, в Викисловаре. |
67 | | - * Иногда в школьных учебниках 10 слов на «-мя» относят к разносклоняемым. |
68 | | - * Здесь это третье склонение. |
69 | | - * |
70 | | - * Понятие "склонение" сложно применить к словам pluralia tantum, |
71 | | - * поэтому этот метод возвращает для них undefined. |
72 | | - * |
73 | | - * @param lemma |
74 | | - * @returns {number} «Школьный» вариант склонения: |
75 | | - * «вода» — 1; «стол», «окно» — 2, |
76 | | - * разносклоняемые — 0; несклоняемые — минус единица. |
| 37 | + * @deprecated since version 2.3.0 |
| 38 | + */ |
| 39 | +export function getDeclension(lemma: Lemma | object): number; |
| 40 | + |
| 41 | +/** |
| 42 | + * @deprecated since version 2.3.0 |
77 | 43 | */ |
78 | 44 | export function getSchoolDeclension(lemma: Lemma): number; |
79 | 45 |
|
80 | | -export { Engine }; |
| 46 | +export { Engine, Lemma, LocativeForm, LocativeFormAttribute }; |
0 commit comments