Not saying this answers your question, but could you resort to something like this?
interface Foo{
bar:T;
}
function createFoo(bar:T) : Foo{
return {bar:bar};
}
var sFoo = createFoo("s");
var len = sFoo.bar.length;
var bFoo = createFoo(true);
var result = bFoo.bar === true;