IDEA设置自动添加serialVersionUID
序列化过程:序列化操作的时候系统会把当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会去检测文件中的serialVersionUID,判断它是否与当前类的serialVersionUID一致,如果一致就说明序列化类的版本与当前类版本是一样的,可以反序列化成功,否则失败。
IDEA设置:
Alt+Enter即可显示:
JS中三个点的用法(扩展运算符)
扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式
或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value
的方式展开。用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中。
字面量一般指[1,2,3]或者{name:’chuichui’}这种简洁的构造方式,多层嵌套的数组和对象三个点就无能为力了。
复制
1 | // 对象的复制 |
ES6-笔记
TypeScript-声明文件
TypeScript 作为 JavaScript 的超集,在开发过程中不可避免要引用其他第三方的 JavaScript 的库。虽然通过直接引用可以调用库的类和方法,但是却无法使用TypeScript 诸如类型检查等特性功能。为了解决这个问题,需要将这些库里的函数和方法体去掉后只保留导出类型声明,而产生了一个描述 JavaScript 库和模块信息的声明文件。通过引用这个声明文件,就可以借用 TypeScript 的各种特性来使用库文件了。
声明文件
声明文件以 .d.ts
为后缀,例如:
1 | runoob.d.ts |
声明文件或模块的语法格式如下:
1 | declare module Module_Name { |
TypeScript 引入声明文件语法格式:
1 | /// <reference path = "runoob.d.ts" /> |
TypeScript-模块
模块是在其自身的作用域里执行,并不是在全局作用域,这意味着定义在模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export
导出它们。必须通过 import
导入其他模块导出的变量、函数、类等。
两个模块之间的关系是通过在文件级别上使用 import
和 export
建立的。
模块导出使用关键字 export
关键字,语法格式如下:
1 | // 文件名 : SomeInterface.ts |
要在另外一个文件使用该模块就需要使用 import
关键字来导入:
1 | import someInterfaceRef = require("./SomeInterface"); |
TypeScript-命名空间
定义
TypeScript 中命名空间使用 namespace
来定义,语法格式如下:
1 | namespace SomeNameSpaceName { |
以上定义了一个命名空间 SomeNameSpaceName
,如果我们需要在外部可以调用 SomeNameSpaceName 中的类和接口,则需要在类和接口添加 export
关键字。
要在另外一个命名空间调用语法格式为:
1 | SomeNameSpaceName.SomeClassName; |
如果一个命名空间在一个单独的 TypeScript 文件中,则应使用三斜杠 ///
引用它,语法格式如下:
1 | /// <reference path = "SomeFileName.ts" /> |
TypeScript-对象
对象是包含一组键值对的实例。 值可以是标量、函数、数组、对象等,如下实例:
1 | var object_name = { |
实例:
1 | var sites = { |
TypeScript-接口
TypeScript 接口定义如下:
1 | interface interface_name { |
需要注意接口不能转换为 JavaScript
。 它只是 TypeScript 的一部分。
实例:
以下实例中,我们定义了一个接口 IPerson,接着定义了一个变量 customer,它的类型是 IPerson。
customer 实现了接口 IPerson 的属性和方法。
1 | interface IPerson { |
TypeScript-类
TypeScript 是面向对象的 JavaScript。
类描述了所创建的对象共同的属性和方法。
TypeScript 支持面向对象的所有特性,比如 类、接口等。
TypeScript 类定义方式如下:
1 | class class_name { |
TypeScript-联合类型
联合类型(Union Types)可以通过管道(|
)将变量设置多种类型,赋值时可以根据设置的类型来赋值。
注意:只能赋值指定的类型,如果赋值其它类型就会报错。
创建联合类型的语法格式如下:
1 | Type1|Type2|Type3 |
实例
声明一个联合类型:
1 | var val:string|number |