import {expectError, expectType} from 'tsd'; import { ObjectModel } from '../src/object-model'; import { MapModel } from '../src/map-model'; expectType>(MapModel(Number, Boolean)(new Map([[1, true],[2, false]]))); const Question = ObjectModel({ q: String }) const Response = ObjectModel({ r: String }) const Quiz = MapModel(Question, Response); expectType>(Quiz(new Map([]))); const MapModel1 = MapModel(String, Date) const MapModel2 = MapModel1.extend([ ObjectModel({ ref: String }), Number], [ ObjectModel({ date: Date }), String]) expectType>(MapModel2([ ["a", new Date()], [2, "b"], [{ ref: "c"}, { date: new Date() }] ])) const M = MapModel(Number, String).defaultTo(new Map([[1, "first"]])) expectType>(new M()) expectError(MapModel(Number, String).defaultTo("not a map")) expectError(M("not a map"))