2.10.0 • Published 3 years ago
@arthurka/ts-utils v2.10.0
Usage
import { checkExactShape, ExactShape } from '@arthurka/ts-utils';
const tooFew = { name: 'Stefan' };
const exact = { name: 'Stefan', age: '31' };
const tooMany = { name: 'Stefan', age: '31', sex: 'male' };
const record: Record<string, string> = {};
type R = typeof record;
type Exact = typeof exact;
interface ExtendedRecord extends Exact, R {}
const extendedRecord: ExtendedRecord = {
  name: 'Stefan',
  age: '31',
  sex: 'male',
};
type Person = {
  name: string;
  age: string;
};
function savePerson<T extends Person>(e: ExactShape<Person, T>) {
}
savePerson(exact);
// @ts-expect-error
savePerson(tooFew);
// @ts-expect-error
savePerson(tooMany);
// @ts-expect-error
savePerson(record);
// @ts-expect-error
savePerson(extendedRecord);
function getPerson(): Person {
  const e = exact;
  // const e = tooFew;
  // const e = tooMany;
  // const e = record;
  // const e = extendedRecord;
  checkExactShape<Person>()(e);
  return e;
}
const person = getPerson();
console.info(person);3.17.0
11 months ago
3.17.2
6 months ago
3.17.1
11 months ago
3.16.0
1 year ago
3.15.0
2 years ago
3.14.0
2 years ago
3.13.0
2 years ago
3.12.0
2 years ago
3.11.0
2 years ago
3.10.0
2 years ago
3.9.2
2 years ago
3.9.1
3 years ago
3.9.0
3 years ago
3.8.2
3 years ago
3.8.0
3 years ago
3.8.1
3 years ago
3.7.0
3 years ago
3.6.0
3 years ago
3.5.0
3 years ago
3.4.0
3 years ago
3.3.0
3 years ago
3.4.1
3 years ago
2.11.0
3 years ago
2.12.0
3 years ago
2.11.1
3 years ago
2.5.0
3 years ago
2.10.0
3 years ago
2.4.0
3 years ago
2.7.0
3 years ago
2.6.0
3 years ago
2.5.1
3 years ago
2.9.0
3 years ago
2.8.0
3 years ago
3.2.1
3 years ago
3.2.0
3 years ago
3.1.0
3 years ago
2.9.1
3 years ago
3.0.0
3 years ago
2.15.0
3 years ago
2.13.0
3 years ago
2.14.0
3 years ago
2.3.0
4 years ago
2.2.0
4 years ago
1.8.0
4 years ago
2.1.1
4 years ago
2.0.0-beta.2
4 years ago
2.0.0-beta.1
4 years ago
2.1.0
4 years ago
2.0.0
4 years ago
2.0.0-beta.3
4 years ago
1.7.0
4 years ago
1.6.1
4 years ago
1.6.0
4 years ago
1.5.0
4 years ago
1.4.1
4 years ago
1.2.0
4 years ago
1.4.0
4 years ago
1.3.0
4 years ago
1.1.1
4 years ago
1.1.0
4 years ago
1.0.0
4 years ago