Firkantede parenteser rundt vs etter uttrykk i Typescript
er det en forskjell mellom de følgende to notasjonene med firkantede parenteser i Typescript? Prøvde et par scenarier, og det ser ut til at de er like?
Takk!
interface test {
a: string;
b: string;
}
const x: test[] = [{a: "aaaa", b: "bbbb"}]
const y: [test] = [{a: "aaaa", b: "bbbb"}]
Svar #1
Som @VLAZ påpeker, er x et Array, mens y er en Tuple.
Forskjellen er synlig selv i dette enkle tilfellet.
interface test {
a: string;
b: string;
}
const x: test[] = [{a: "aaaa", b: "bbbb"}]
const y: [test] = [{a: "aaaa", b: "bbbb"}]
x.push({a: "a1", b: "b1"}); // works fine
y.push({a: "a1", b: "b1"}); // works fine
const a = x[1]; // works fine
const b = y[1]; // compilation error
// Tuple type '[test]' of length '1' has no element at index '1'.
