mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-06-04 19:42:46 +08:00
Added 'get-value'.
This commit is contained in:
22
types/get-value/get-value-tests.ts
Normal file
22
types/get-value/get-value-tests.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import get = require("get-value");
|
||||
const obj = { a: { b: { c: { d: "foo" } } } };
|
||||
|
||||
get(obj);
|
||||
get(obj, "a");
|
||||
get(obj, "a.b");
|
||||
get(obj, "a.b.c");
|
||||
get(obj, "a.b.c.d");
|
||||
|
||||
{
|
||||
const isEnumerable = Object.prototype.propertyIsEnumerable;
|
||||
const options: get.Options = {
|
||||
isValid: (key, obj) => isEnumerable.call(obj, key) || typeof obj[key] === "string",
|
||||
};
|
||||
|
||||
const obj = {};
|
||||
Object.defineProperty(obj, 'foo', { value: 'bar', enumerable: false });
|
||||
|
||||
get(obj, 'foo', options);
|
||||
get({}, 'hasOwnProperty', options);
|
||||
get({}, 'constructor', options);
|
||||
}
|
||||
53
types/get-value/index.d.ts
vendored
Normal file
53
types/get-value/index.d.ts
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
// Type definitions for get-value 3.0
|
||||
// Project: https://github.com/jonschlinkert/get-value
|
||||
// Definitions by: Daniel Rosenwasser <https://github.com/DanielRosenwasser>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.4
|
||||
|
||||
export = get;
|
||||
|
||||
declare function get<T>(obj: T): T;
|
||||
declare function get(obj: object, key: string, options?: get.Options): any;
|
||||
|
||||
declare namespace get {
|
||||
interface Options {
|
||||
/**
|
||||
* The default value to return when get-value cannot result a value from the given object.
|
||||
*
|
||||
* default: `undefined`
|
||||
*/
|
||||
default?: any;
|
||||
/**
|
||||
* If defined, this function is called on each resolved value.
|
||||
* Useful if you want to do `.hasOwnProperty` or `Object.prototype.propertyIsEnumerable`.
|
||||
*/
|
||||
isValid?: <K extends string>(key: K, object: Record<K, any>) => boolean;
|
||||
/**
|
||||
* Custom function to use for splitting the string into object path segments.
|
||||
*
|
||||
* default: `String.split`
|
||||
*/
|
||||
split?: (s: string) => string[];
|
||||
/**
|
||||
* The separator to use for spliting the string.
|
||||
* (this is probably not needed when `options.split` is used).
|
||||
*
|
||||
* default: `"."`
|
||||
*/
|
||||
separator?: string | RegExp;
|
||||
/**
|
||||
* Customize how the object path is created when iterating over path segments.
|
||||
*
|
||||
* default: `Array.join`
|
||||
*/
|
||||
join?: (segs: string[]) => string;
|
||||
/**
|
||||
* The character to use when re-joining the string to check for keys
|
||||
* with dots in them (this is probably not needed when `options.join` is used).
|
||||
* This can be a different value than the separator, since the separator can be a string or regex.
|
||||
*
|
||||
* default: `"."`
|
||||
*/
|
||||
joinChar?: string;
|
||||
}
|
||||
}
|
||||
23
types/get-value/tsconfig.json
Normal file
23
types/get-value/tsconfig.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"get-value-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/get-value/tslint.json
Normal file
1
types/get-value/tslint.json
Normal file
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user