Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface IDate {
- value: string;
- }
- const data: IDate = { value: '2' };
- const sameData = { value: '2' };
- // function mapObject<K extends string | number, T, U>(obj: Record<K, T>, f: (x: T) => U): Record<K, U>
- /*
- Simpler form of objToObj with strings
- */
- function extract<
- Obj extends {[key: string]: string}
- >(data: {[key: string]: string}, obj: Obj): Obj {
- const result = Object.assign({}, obj);
- for (let i in obj) {
- if (!obj.hasOwnProperty(i)) {
- continue;
- }
- const key: string = obj[i]; // wtf?!
- const val: string = data[key];
- result[i] = val;
- }
- return result;
- }
- function objToObj<
- K extends string, T, Kc extends string
- >(obj: Record<K, T>, conf: Record<Kc, K>): Record<Kc, T> {
- const result: Record<Kc, T> = {} as any;
- for (let i in conf) {
- if (!conf.hasOwnProperty(i)) {
- continue;
- }
- const key: K = conf[i];
- const val: T = obj[key];
- result[i] = val;
- }
- return result;
- }
- var a: {value: string} = extract({'owe': 'value-2'}, {value: 'owe'});
- var a: { value: string } = extract(data, {value: 'owe'});
- var a: { value: string } = extract(sameData, {value: 'owe'});
- var a: {value: string} = objToObj(data, {value: 'owe'});
- var a: {value: string} = objToObj(sameData, {value: 'owe'});
- var a: {value: string} = objToObj({'owe': 'value-2'}, {value: 'owe'});
- var a /*: { value: string, num: number }*/ = objToObj(
- { 'owe': 'owe-value', 'wow': 1 },
- { value: 'owe', num: 'wow' }
- );
- var a: { value: string, num: number } = objToObj(
- { 'owe': 'owe-value', 'wow': 1 },
- { value: 'owe', num: 'wow' }
- );
- var a: { value: string|number, num: string|number } = objToObj(
- { 'owe': 'owe-value', 'wow': 1 },
- { value: 'owe', num: 'wow' }
- );
- var a: { value: string } = objToObj(
- { 'owe': 'owe-value', 'wow': 1 },
- { value: 'owe', num: 'wow' }
- );
- var a: { value: string|number } = objToObj(
- { 'owe': 'owe-value', 'wow': 1 },
- { value: 'owe', num: 'wow' }
- );
- console.log(a)
- //console.log(data, rapidValidators, a)
- document.getElementsByTagName('body')[0].innerText = JSON.stringify(a);
- //console.log({...data})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement