packages/jsii-reflect/lib/type-member.ts (25 lines of code) (raw):

import { Documentable } from './docs'; import { Initializer } from './initializer'; import { Method } from './method'; import { Property } from './property'; import { SourceLocatable } from './source'; export interface TypeMember extends Documentable, SourceLocatable { name: string; abstract: boolean; kind: MemberKind; protected?: boolean; } export enum MemberKind { Initializer = 'initializer', Method = 'method', Property = 'property', } export function isInitializer(x: TypeMember): x is Initializer { return x.kind === MemberKind.Initializer; } export function isMethod(x: TypeMember): x is Method { return x.kind === MemberKind.Method; } export function isProperty(x: TypeMember): x is Property { return x.kind === MemberKind.Property; }