@anysphere/scip-typescript
Version:
SCIP indexer for TypeScript and JavaScript
123 lines (119 loc) • 8.17 kB
text/typescript
// < definition syntax 1.0.0 src/`inheritance.ts`/
import { Overloader } from './overload'
// ^^^^^^^^^^ reference syntax 1.0.0 src/`overload.d.ts`/Overloader#
// ^^^^^^^^^^^^ reference syntax 1.0.0 src/`overload.d.ts`/
export interface Superinterface {
// ^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Superinterface#
property: string
//^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Superinterface#property.
interfaceMethod(): string
//^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Superinterface#interfaceMethod().
}
export interface IntermediateSuperinterface extends Superinterface {
// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperinterface#
// ^^^^^^^^^^^^^^ reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#
intermediateInterfaceMethod(): string
//^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperinterface#intermediateInterfaceMethod().
}
export abstract class Superclass {
// ^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Superclass#
public abstract overrideMethod(): string
// ^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Superclass#overrideMethod().
}
export abstract class IntermediateSuperclass extends Superclass {
// ^^^^^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperclass#
// relationship implementation syntax 1.0.0 src/`inheritance.ts`/Superclass#
// ^^^^^^^^^^ reference syntax 1.0.0 src/`inheritance.ts`/Superclass#
public override overrideMethod(): string {
// ^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperclass#overrideMethod().
// relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/Superclass#overrideMethod().
return 'this will get overridden'
}
public abstract intermediateOverrideMethod(): string
// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperclass#intermediateOverrideMethod().
}
export class Subclass
// ^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Subclass#
// relationship implementation syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperclass#
// relationship implementation syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperinterface#
// relationship implementation syntax 1.0.0 src/`inheritance.ts`/Superclass#
// relationship implementation syntax 1.0.0 src/`inheritance.ts`/Superinterface#
// relationship implementation syntax 1.0.0 src/`overload.d.ts`/Overloader#
extends IntermediateSuperclass
// ^^^^^^^^^^^^^^^^^^^^^^ reference syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperclass#
implements IntermediateSuperinterface, Overloader
// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperinterface#
// ^^^^^^^^^^ reference syntax 1.0.0 src/`overload.d.ts`/Overloader#
{
public onLiteral(param: any): void {
// ^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Subclass#onLiteral().
// relationship implementation reference syntax 1.0.0 src/`overload.d.ts`/Overloader#onLiteral().
// ^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Subclass#onLiteral().(param)
throw new Error('Method not implemented.' + param)
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error#
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error.
// ^^^^^ reference syntax 1.0.0 src/`inheritance.ts`/Subclass#onLiteral().(param)
}
property = 'property'
//^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Subclass#property.
//relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#property.
public overrideMethod(): string {
// ^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Subclass#overrideMethod().
// relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperclass#overrideMethod().
// relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/Superclass#overrideMethod().
throw new Error('Method not implemented.')
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error#
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error.
}
public intermediateOverrideMethod(): string {
// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Subclass#intermediateOverrideMethod().
// relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperclass#intermediateOverrideMethod().
throw new Error('Method not implemented.')
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error#
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error.
}
public interfaceMethod(): string {
// ^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Subclass#interfaceMethod().
// relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#interfaceMethod().
throw new Error('Method not implemented.')
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error#
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error.
}
public intermediateInterfaceMethod(): string {
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/Subclass#intermediateInterfaceMethod().
// relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/IntermediateSuperinterface#intermediateInterfaceMethod().
throw new Error('Method not implemented.')
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error#
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error.
}
}
export const objectLiteralImplementation: Superinterface = {
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/objectLiteralImplementation.
// ^^^^^^^^^^^^^^ reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#
property: 'property',
//^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/property0:
//relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#property.
interfaceMethod: (): string => {
//^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/interfaceMethod0:
//relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#interfaceMethod().
throw new Error('Function not implemented.')
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error#
// ^^^^^ reference typescript 5.3.3 lib/`lib.es5.d.ts`/Error.
},
}
export function consumesInterface(superInterface: Superinterface): void {}
// ^^^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/consumesInterface().
// ^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/consumesInterface().(superInterface)
// ^^^^^^^^^^^^^^ reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#
export function infersInterface(): void {
// ^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/infersInterface().
consumesInterface({
//^^^^^^^^^^^^^^^^^ reference syntax 1.0.0 src/`inheritance.ts`/consumesInterface().
interfaceMethod: (): string => 'inferred',
// ^^^^^^^^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/interfaceMethod1:
// relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#interfaceMethod().
property: 'inferred',
// ^^^^^^^^ definition syntax 1.0.0 src/`inheritance.ts`/property1:
// relationship implementation reference syntax 1.0.0 src/`inheritance.ts`/Superinterface#property.
})
}