import { IterableX } from './iterablex' ; template TSource param { ... TSource [ ] } args returns { IterableX < TSource > } export function of < TSource > ( ... args ) { return new OfIterable < TSource > ( args ) ; } export class OfIterable < TSource > extends IterableX < TSource > { private _args : TSource [ ] ; constructor ( args ) { super ( ) ; this . _args = args ; } * [ Symbol . iterator ] ( ) { yield * this . _args ; } }