typescript - Vilken klass ärver ReadonlyArray?


Jag har detta kodavsnitt i TypeScript:

const arr: ReadonlyArray<string> = [
    "123",
    "234"
];

arr.push("345");

TS-kompilatorn visar ett fel:

Property 'push' finns inte på typen 'ReadonlyArray<string>'.

Självklart är det tydligt att jag inte kan ändra/ändra denna array. Frågan är: vad är basklassen för ReadonlyArray? Ärver den från standard Array-klassen?

Svar #1

https://www.typescriptlang.org/docs/handbook/interfaces.html anger att:

TypeScript levereras med en ReadonlyArray<T>-typ som är samma som Array<T> men med alla muterande metoder borttagna, så att du kan försäkra dig om att du inte ändrar dina arrayer efter skapande

Om du vill ha källan, gå till:

https://github.com/Microsoft/TypeScript/blob/master/src/lib/es5.d.ts#L1121 (01.06.2022) - Sök efter "ReadonlyArray" om källfilen har utvecklats.

(dess definition finns på rad 1121 i den nuvarande versionen).

Relaterade artiklar