DefinitelyTyped/types/getenv/getenv-tests.ts
2018-10-10 09:16:05 -07:00

49 lines
2.0 KiB
TypeScript

import * as getenv from 'getenv';
import { UrlWithStringQuery } from 'url';
getenv('FOO'); // $ExpectType string
getenv('FOO', 'bar'); // $ExpectType string
getenv('FOO', 123); // $ExpectError
getenv.string('FOO'); // $ExpectType string
getenv.string('FOO', 'bar'); // $ExpectType string
getenv.string('FOO', 123); // $ExpectError
getenv.array('FOO'); // $ExpectType string[]
getenv.array('FOO', 'int'); // $ExpectType number[]
getenv.bool('FOO'); // $ExpectType boolean
getenv.bool('FOO', true); // $ExpectType boolean
getenv.bool('FOO', 'true'); // $ExpectError
getenv.int('FOO'); // $ExpectType number
getenv.int('FOO', 123); // $ExpectType number
getenv.int('FOO', '123'); // $ExpectError
getenv.float('FOO'); // $ExpectType number
getenv.float('FOO', 123.55); // $ExpectType number
getenv.float('FOO', '123.55'); // $ExpectError
getenv.boolish('FOO'); // $ExpectType boolean
getenv.boolish('FOO', false); // $ExpectType boolean
getenv.boolish('FOO', 'false'); // $ExpectError
getenv.url('FOO'); // $ExpectType UrlWithStringQuery
// tslint:disable-next-line:no-object-literal-type-assertion
getenv.url('FOO', {} as UrlWithStringQuery); // $ExpectType UrlWithStringQuery
getenv.url('FOO', {}); // $ExpectError
getenv.array('FOO'); // $ExpectType string[]
getenv.array('FOO', 'int'); // $ExpectType number[]
getenv.array('FOO', 'int', [1]); // $ExpectType number[]
getenv.array('FOO', 'int', ['bar']); // $ExpectError
getenv.multi({ foo: 'BAR' }); // $ExpectType { foo: string; }
getenv.multi({ foo: ['BAR', 'baz'] }); // $ExpectType { foo: string; }
getenv.multi({ foo: ['BAR', 'baz', 'string'] }); // $ExpectType { foo: string; }
getenv.multi({ foo: ['BAR', true, 'bool'] }); // $ExpectType { foo: boolean; }
getenv.multi({ foo: ['BAR', 1.55, 'float'] }); // $ExpectType { foo: number; }
// tslint:disable-next-line:no-object-literal-type-assertion
getenv.multi({ foo: ['BAR', {} as UrlWithStringQuery, 'url'] }); // $ExpectType { foo: UrlWithStringQuery; }
getenv.multi({ foo: ['BAR', 'baz', 'int'] }); // $ExpectError