types
Specify a type to convert values to. Type coercion only applies when setting a property.
All types leave null
and undefined
as is except for
the "htmlbool"
type converter.
Object
All of the following type names can be used as part of a type property behavior like:
DefineMap.extend({
age: {type: "number"}
});
Or they can be used in the type property definition shorthand:
DefineMap.extend({
age: "number"
});
Use
Use any of the type names on a PropDefinition's type
or directly on the prototype of a DefineMap or DefineList.
import {DefineMap} from "can";
const Person = DefineMap.extend( {
age: "number"
} );
const person = new Person( {age: "30"} );
console.log( person.age ); //-> 30
You can also pass these functions in directly:
import {DefineMap, define} from "can";
const Person = DefineMap.extend( {
age: define.types.number
} );
const person = new Person( {age: "30"} );
console.log( person.age ); //-> 30
And you can use the can-data-types types too:
import {DefineMap, MaybeNumber} from "can";
const Person = DefineMap.extend( {
age: MaybeNumber
} );
const person = new Person({age: "30"});
console.log( person.age ); //-> 30