diff --git a/packages/ts-morph/src/compiler/types/Type.ts b/packages/ts-morph/src/compiler/types/Type.ts index cfddb07c1..42260c005 100644 --- a/packages/ts-morph/src/compiler/types/Type.ts +++ b/packages/ts-morph/src/compiler/types/Type.ts @@ -578,6 +578,13 @@ export class Type { isUndefined() { return this._hasTypeFlag(TypeFlags.Undefined); } + + /** + * Gets if this is the void type. + */ + isVoid() { + return this._hasTypeFlag(TypeFlags.Void); + } /** * Gets the type flags. diff --git a/packages/ts-morph/src/tests/compiler/type/typeTests.ts b/packages/ts-morph/src/tests/compiler/type/typeTests.ts index 793b75c71..dbb947dae 100644 --- a/packages/ts-morph/src/tests/compiler/type/typeTests.ts +++ b/packages/ts-morph/src/tests/compiler/type/typeTests.ts @@ -57,6 +57,7 @@ let explicitReadonlyArrayType: ReadonlyArray; let neverType: never; let arrayTypeOfTuples: [string][]; let undefinedType: undefined; +let voidType: void; let classType: MyClass; let functionType: () => string; let constructorType: { new(): MyClass; }; @@ -518,6 +519,20 @@ let unknownType: unknown; }); }); + describe(nameof("isVoid"), () => { + function doTest(typeName: string, expected: boolean) { + expect(typesByName[typeName].isVoid()).to.equal(expected); + } + + it("should be when is", () => { + doTest("voidType", true); + }); + + it("should not be when not", () => { + doTest("stringType", false); + }); + }); + describe(nameof("getFlags"), () => { it("should get the type flags", () => { expect(typesByName["numberType"].getFlags()).to.equal(TypeFlags.Number);