Record

Record

创建一个生成 Record 实例的新类。记录类似于 JS 对象,但强制允许一组特定的字符串键,并具有默认值。

示例

var ABRecord = Record{a:1, b:2}) var myRecord = new ABRecord{b:3})

记录始终具有它们定义的键的值。remove从记录中取出一个密钥只需将其重置为该密钥的默认值即可。

myRecord.size // 2 myRecord.get('a') // 1 myRecord.get('b') // 3 myRecordWithoutB = myRecord.remove('b') myRecordWithoutB.get('b') // 2 myRecordWithoutB.size // 2

提供给记录类型中找不到的构造函数的值将被忽略。例如,在这种情况下,即使仅定义了“a”和“b”,ABRecord 也被提供了键“x”。此记录将忽略“x”的值。

var myRecord = new ABRecord{b:3, x:10}) myRecord.get('x') // undefined

由于记录有一组已知的字符串键,属性获取访问按预期工作,但属性集将引发错误。

注意:IE8不支持属性访问。仅get()在支持 IE8时使用。

myRecord.b // 3 myRecord.b = 5 // throws Error

记录类也可以扩展,允许记录上的自定义方法。这不是功能环境中的常见模式,但在许多 JS 程序中。

注意:TypeScript 不支持这种类型的子类。

class ABRecord extends Record{a:1,b:2}) { getAB() { return this.a + this.b; } } var myRecord = new ABRecord{b: 3}) myRecord.getAB() // 4

建设

Record()

Record(defaultValues: {[key: string]: any}, name?: string): Record.Class

类型

Record.Class

Record.Class

class Record.Class