Nominal typ i TypeScript
Jag har följande kod:
interface A {}
interface B {}
let a: A;
let b: B;
// I want this to fail to compile
a = b;
Eftersom gränssnitten A och B ser likadana ut kompilerar det utan problem. Hur kan jag definiera variabeln a så att a=b inte kompilerar eftersom typerna är olika?
Typescript 4.7.4.
Svar #1
Dessa gränssnitt (former) överlappar, så även om a: A, kan det fortfarande tilldelas till b: B.
interface A {
type: 'A'
}
interface B {
type: 'B'
}
let a: A;
let b: B;
// fails
a = b;
