-
-
Notifications
You must be signed in to change notification settings - Fork 184
Expand file tree
/
Copy pathArrayAt.ts
More file actions
13 lines (11 loc) · 649 Bytes
/
ArrayAt.ts
File metadata and controls
13 lines (11 loc) · 649 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
// https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.at
// Technically the specs also allow non-numeric types to be passed as index.
// However, TypeScript types the `Array.at` index param as number so we also expect only numbers
// This behaviour also matches the implementation of other Array functions in lualib.
export function __TS__ArrayAt<T>(this: T[], relativeIndex: number): T | undefined {
const absoluteIndex = relativeIndex < 0 ? this.length + relativeIndex : relativeIndex;
if (absoluteIndex >= 0 && absoluteIndex < this.length) {
return this[absoluteIndex];
}
return undefined;
}