2019-01-19 00:46:25 +00:00
|
|
|
// TypeScript Version: 3.2.2
|
|
|
|
import u from "updeep";
|
|
|
|
|
|
|
|
u.omitted('whatever'); // $ExpectType { __omitted: boolean; }
|
|
|
|
|
|
|
|
const obj = { this: 3 };
|
|
|
|
|
|
|
|
u(true, obj); // $ExpectType true
|
|
|
|
u(null, obj); // $ExpectType null
|
|
|
|
u(undefined, obj); // $ExpectType undefined
|
|
|
|
u("a specific string", obj); // $ExpectType "a specific string"
|
|
|
|
|
2019-09-18 15:08:31 +00:00
|
|
|
u(true as const)(obj); // $ExpectType true
|
2019-01-19 00:46:25 +00:00
|
|
|
u(null)(obj); // $ExpectType null
|
|
|
|
u(undefined)(obj); // $ExpectType undefined
|
2019-09-18 15:08:31 +00:00
|
|
|
u("a specific string" as const)(obj); // $ExpectType "a specific string"
|
2019-01-19 00:46:25 +00:00
|
|
|
|
|
|
|
const aString = "a" + "b";
|
|
|
|
|
|
|
|
u(aString, obj); // $ExpectType string
|
|
|
|
|
|
|
|
u((i: number) => "foo" + i, 1); // $ExpecType string
|
|
|
|
u((i: number) => "foo" + i, "bar");
|
|
|
|
|
|
|
|
// update is object
|
|
|
|
u({ this: 2 }, true); // $ExpectType UpdateReturnMap<{ this: number; }>
|
|
|
|
u({ this: 2 })(true); // $ExpectType UpdateReturnMap<{ this: number; }>
|
|
|
|
|
|
|
|
u({ this: 2 }, { this: 3 }); // $ExpectType object
|
|
|
|
u({ this: 2 })({ that: 3 }); // $ExpectType object
|
|
|
|
|
|
|
|
u({ this: 2 })(true); // UpdateReturnMap<{ this: number; }>
|
|
|
|
u({ this: 2 })({ that: 3 }); // $ExpectType object
|
|
|
|
|
|
|
|
|
|
|
|
u.ifElse(false as boolean, { a: 1 }, { a: 2 }, { a: 3 }); // $ExpectType object
|
2021-08-10 14:39:24 +00:00
|
|
|
u.ifElse(false as boolean, "foo" as const, 3 as const, { a: 3 }); // $ExpectType 3 | "foo"
|
|
|
|
u.ifElse(false, "foo" as const, 3 as const, { a: 3 }); // $ExpectType 3
|
|
|
|
u.ifElse(true, "foo" as const, 3 as const, { a: 3 }); // $ExpectType "foo"
|
2019-01-19 00:46:25 +00:00
|
|
|
|
|
|
|
// *** map ***
|
2020-04-02 18:24:44 +00:00
|
|
|
const inc = (i: number) => i+1;
|
2019-01-19 00:46:25 +00:00
|
|
|
|
|
|
|
u.map(inc, [1,2,3]); // $ExpectType number[]
|
|
|
|
u.map(inc, ["potato"]); // $ExpectType number[]
|
|
|
|
u.map({a:1},{a:2}); // $ExpectType Mapped<{ a: number; }, { a: number; }>
|
|
|
|
|
|
|
|
u.omit('bar', { }); // $ExpectType object
|
|
|
|
u.omit(['bar'], { }); // $ExpectType object
|
|
|
|
|
|
|
|
u.omitBy([ 'banana' ], { } ); // $ExpectError
|
|
|
|
|
|
|
|
// *** constant ***
|
|
|
|
|
|
|
|
// $ExpectType { banana: number; }
|
|
|
|
u.constant({ banana: 1 })('foo');
|
|
|
|
|
|
|
|
/// *** freeze ***
|
|
|
|
|
|
|
|
// $ExpectType { potato: number; }
|
|
|
|
u.freeze({ potato: 1 });
|