Skip to content

Commit d6998da

Browse files
committed
Add getBaseTypes on TypeObject in services
1 parent 8fcca92 commit d6998da

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

src/compiler/checker.ts

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ namespace ts {
6868
getPropertyOfType,
6969
getSignaturesOfType,
7070
getIndexTypeOfType,
71+
getBaseTypes,
7172
getReturnTypeOfSignature,
7273
getSymbolsInScope,
7374
getSymbolAtLocation,

src/compiler/types.ts

+3
Original file line numberDiff line numberDiff line change
@@ -1404,6 +1404,7 @@ namespace ts {
14041404
getPropertyOfType(type: Type, propertyName: string): Symbol;
14051405
getSignaturesOfType(type: Type, kind: SignatureKind): Signature[];
14061406
getIndexTypeOfType(type: Type, kind: IndexKind): Type;
1407+
getBaseTypes(type: InterfaceType): ObjectType[];
14071408
getReturnTypeOfSignature(signature: Signature): Type;
14081409

14091410
getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[];
@@ -1808,7 +1809,9 @@ namespace ts {
18081809
typeParameters: TypeParameter[]; // Type parameters (undefined if non-generic)
18091810
outerTypeParameters: TypeParameter[]; // Outer type parameters (undefined if none)
18101811
localTypeParameters: TypeParameter[]; // Local type parameters (undefined if none)
1812+
/* @internal */
18111813
resolvedBaseConstructorType?: Type; // Resolved base constructor type of class
1814+
/* @internal */
18121815
resolvedBaseTypes: ObjectType[]; // Resolved base types
18131816
}
18141817

src/services/services.ts

+6
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ namespace ts {
4848
getConstructSignatures(): Signature[];
4949
getStringIndexType(): Type;
5050
getNumberIndexType(): Type;
51+
getBaseTypes(): ObjectType[]
5152
}
5253

5354
export interface Signature {
@@ -682,6 +683,11 @@ namespace ts {
682683
getNumberIndexType(): Type {
683684
return this.checker.getIndexTypeOfType(this, IndexKind.Number);
684685
}
686+
getBaseTypes(): ObjectType[] {
687+
return this.flags & (TypeFlags.Class | TypeFlags.Interface)
688+
? this.checker.getBaseTypes(<TypeObject & InterfaceType>this)
689+
: undefined;
690+
}
685691
}
686692

687693
class SignatureObject implements Signature {

0 commit comments

Comments
 (0)