Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/compiler/checker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43174,6 +43174,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
}
}

function isTypeParameterUnused(typeParameter: TypeParameterDeclaration): boolean {
return !(getMergedSymbol(typeParameter.symbol).isReferenced! & SymbolFlags.TypeParameter) && !isIdentifierThatStartsWithUnderscore(typeParameter.name);
}
Expand All @@ -43194,6 +43195,13 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}

function isValidUnusedLocalDeclaration(declaration: Declaration): boolean {
if (isTypeAliasDeclaration(declaration)) {
/**
* ignore starts with underscore names _
* type _T = number;
*/
return isIdentifierThatStartsWithUnderscore(declaration.name);
}
if (isBindingElement(declaration)) {
if (isObjectBindingPattern(declaration.parent)) {
/**
Expand Down
11 changes: 11 additions & 0 deletions tests/baselines/reference/unusedTypeDeclarations.errors.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
unusedTypeDeclarations.ts(1,6): error TS6196: 'T1' is declared but never used.


==== unusedTypeDeclarations.ts (1 errors) ====
type T1 = number; // error
~~
!!! error TS6196: 'T1' is declared but never used.
type _T2 = number; // ok

export {};

12 changes: 12 additions & 0 deletions tests/baselines/reference/unusedTypeDeclarations.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
//// [tests/cases/compiler/unusedTypeDeclarations.ts] ////

//// [unusedTypeDeclarations.ts]
type T1 = number; // error
type _T2 = number; // ok

export {};


//// [unusedTypeDeclarations.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
11 changes: 11 additions & 0 deletions tests/baselines/reference/unusedTypeDeclarations.symbols
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
//// [tests/cases/compiler/unusedTypeDeclarations.ts] ////

=== unusedTypeDeclarations.ts ===
type T1 = number; // error
>T1 : Symbol(T1, Decl(unusedTypeDeclarations.ts, 0, 0))

type _T2 = number; // ok
>_T2 : Symbol(_T2, Decl(unusedTypeDeclarations.ts, 0, 17))

export {};

13 changes: 13 additions & 0 deletions tests/baselines/reference/unusedTypeDeclarations.types
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//// [tests/cases/compiler/unusedTypeDeclarations.ts] ////

=== unusedTypeDeclarations.ts ===
type T1 = number; // error
>T1 : number
> : ^^^^^^

type _T2 = number; // ok
>_T2 : number
> : ^^^^^^

export {};

6 changes: 6 additions & 0 deletions tests/cases/compiler/unusedTypeDeclarations.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// @noUnusedLocals: true

type T1 = number; // error
type _T2 = number; // ok

export {};