**TypeScript Version:** 2.8.0-dev.20180213 <!-- Search terms you tried before logging this (so others can find this issue more easily) --> **Search Terms:** - TS6133 **Code** ```ts interface A<T> { T: T } // ERROR // ^^^ TS6133: 'T' is declared but its value is never read. type B<T> = { T: T }; // OK ``` **Expected behavior:** No errors. **Actual behavior:** TSC thinks the generic type `T` is unused in `interface A`, but it is used. Meanwhile the equivalent `type B` gets it right.