A verificação de tipo genérico datilografada não está funcionando conforme o esperado
Eu fiz um teste simples:
export interface ITest1 {}
export interface ITest2 {}
export interface ITestGeneric<T> {}
export function test() {
let p: ITestGeneric<ITest1> = {}
let q: ITestGeneric<ITest2> = p;
}
Eu esperaria que a última linha falhasse, porque em C # tais atribuições de tipo incompatíveis não funcionam. No entanto, o texto datilografado compila isso sem queixas.
Alguém pode me dizer por que isso funciona e o que tenho que fazer para fazer isso falhar?