1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var utils = require("tsutils/typeguard/2.8");
|
4 | var check_node_1 = require("./shared/check-node");
|
5 |
|
6 | exports.Rule = check_node_1.createCheckNodeRule(checkNode, "Only the same kind of members allowed in interfaces.");
|
7 | function checkNode(node, _ctx) {
|
8 | var invalidNodes = [];
|
9 | if (utils.isInterfaceDeclaration(node)) {
|
10 | var prevMemberKind = undefined;
|
11 | var prevMemberType = undefined;
|
12 | for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
|
13 | var member = _a[_i];
|
14 | var memberKind = member.kind;
|
15 | var memberType = 0;
|
16 |
|
17 | if (utils.isPropertySignature(member) &&
|
18 | member.type &&
|
19 | utils.isFunctionTypeNode(member.type)) {
|
20 |
|
21 | memberType = member.type.kind;
|
22 | }
|
23 | if (prevMemberKind !== undefined &&
|
24 | (prevMemberKind !== memberKind || prevMemberType !== memberType)) {
|
25 | invalidNodes.push(check_node_1.createInvalidNode(member, []));
|
26 | }
|
27 | prevMemberKind = memberKind;
|
28 | prevMemberType = memberType;
|
29 | }
|
30 | }
|
31 | return { invalidNodes: invalidNodes };
|
32 | }
|
33 |
|
\ | No newline at end of file |