JavaScript新增类型语法Type Syntax


以往Javascript与Java一样,通过JSDoc注释来注释提示函数方法中涉及的参数类型,例如,使用JSDoc的代码如下:

/**
 * @param {string}  p1 - A string param.
 * @param {string=} p2 - An optional param (Closure syntax)
 * @param {string} [p3] - Another optional param (JSDoc syntax).
 * @param {string} [p4="test"] - An optional param with a default value
 * @return {string} This is the result
 */

function stringsStringStrings(p1, p2, p3, p4) {
   
// TODO
}

这里涉及到p1,p2,p3,p4四个参数,其参数类型都是string的,这些说明都是在函数上方的JSDoc注释中说明的。
现在新的提议改进了,没有必要这么麻烦:

function stringsStringStrings(p1: string, p2?: string, p3?: string, p4 = "test"): string {
   
// TODO
}

没有了冗长的注释,都压缩到函数方法的参数中了。
看来JS比Java要走得更快些。JS更加静态化了。
具体解释这里