语法类型 语法 描述 废弃语法
基本类型 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}}
指定类型成员的匿名类型.

标识含有属于指定类型的指定成员. 在本例中, myNum 的类型为 numbermyObject 的类型则未指定.

注意花括号是这种类型语法的一部分. 例如, 想要在对象的 Array 中包含一个 length 属性, 你应该写作 Array.<{length}>.

函数类型 {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 的可缺省参数.
标示被标注的函数接受一个可缺省参数.
所有类型 {*} 通配, 标示变量可以是任何类型.
未知类型 {?} 标识变量可能是任意类型, 编译器不应该对它的使用进行任何类型检查.