语法类型 | 语法 | 描述 | 废弃语法 |
---|---|---|---|
基本类型 |
JS 中共有5种基本类型:
{null} ,
{undefined} ,
{boolean} ,
{number} 和
{string} .
|
基本类型的名称. | |
实例类型 |
{Object}
对象实例或 null. {Function}
函数实例或 null. {EventTarget}
引入 EventTarget 的构造函数实例, 或 null. |
构造函数或接口函数的实例.
构造函数是使用 JSDoc 标签 @constructor 定义的函数. 接口函数指使用 JSDoc 标签 @interface 定义的函数.
默认情况下, 实例类型可以是 null. 这是本表中列出的唯一可以让类型为 null 的类型语法.
|
|
枚举类型 |
{goog.events.EventType}
One of the properties of the object literal initializer of goog.events.EventType .
|
枚举类型必须作为对象字面量或者其他枚举类型的别名来初始化, 可以使用 JSDoc 标签 @enum 来标注. 字面量的属性即枚举类型的实例. 枚举类型的语法定义如下.
注意本条是我们的类型系统中少数不属于 ES4 规范的.
|
|
类型应用 |
{Array.<string>}
字符串数组 {Object.<string, number>}
键与值为数字的对象. |
通过对该类型指定一组类型参数来参数化类型. 此想法可以类比 Java 的泛型. | |
联合类型 |
{(number|boolean)}
数字或布尔量. |
指出一个类型可能是类型 A 或者类型 B.
在最高一级的表达式中圆括号可以省略, 但为了避免歧义在子表达式中应该使用圆括号.
{number|boolean}
{function(): (number|boolean)}
|
{(number,boolean)} ,
{(number||boolean)}
|
可空类型 |
{?number}
数字或 null. |
null 类型和任意其他类型的联合类型的简写方法. 只是一种语法糖. |
{number?}
|
不可空类型 |
{!Object}
值绝对不能为 null 的对象.
|
会从可空类型中过滤 null 类型. 经常用于默认为可空类型的实例类型. |
{Object!}
|
记录类型 |
{{myNum: number, myObject}}
指定类型成员的匿名类型. |
标识含有属于指定类型的指定成员. 在本例中,
注意花括号是这种类型语法的一部分. 例如, 想要在对象的 |
|
函数类型 |
{function(string, boolean)}
包含两个参数(一个字符串类型和一个布尔类型), 并且返回值类型未知. |
标识一个函数. | |
函数返回类型 |
{function(): number}
无参函数返回类型为数字. |
标识一个函数的返回类型. | |
函数 this 类型 |
{function(this:goog.ui.Menu, string)}
接受字符串作为参数, 并且在 goog.ui.Menu 的上下文中运行的函数. |
指定函数类型的上下文类型. | |
函数 new 类型 |
{function(new:goog.ui.Menu, string)}
接受字符串作为参数, 并且使用 new 关键字在 goog.ui.Menu 中创建实例的构造函数. |
指定构造器的构造类型. | |
可变参数 |
{function(string, ...[number]): number}
接受字符串作为其中一个参数, 其他不定参数类型为数字的函数. |
标示函数不定参数类型. | |
可变参数 (在 @param 标注中)
|
@param {...number} var_args
所标注的函数的可变参数的参数数量. |
标识被标注的函数接受可变参数的参数数量. | |
函数可缺省参数 |
{function(?string=, number=)}
接受一个可缺省, 可为空的字符串参数和一个数字参数的函数. = 语法仅用于 function 类型声明.
|
标识函数的可缺省参数. | |
函数可缺省参数 (在 @param 标注中)
|
@param {number=} opt_argument
类型为 number 的可缺省参数.
|
标示被标注的函数接受一个可缺省参数. | |
所有类型 | {*} |
通配, 标示变量可以是任何类型. | |
未知类型 | {?} |
标识变量可能是任意类型, 编译器不应该对它的使用进行任何类型检查. |