let a = 1;
a = ‘a’;
然后我们加上 // @ts-check
试试:
// @ts-check
/**
- @type {Number}
*/
let a = 1;
a = ‘1’;
神奇的一幕出现了,在变量a赋值的下面,出现了红色波浪线,鼠标放上去提示:
let a: number
@type — {Number}
不能将类型““1””分配给类型“number”。ts(2322)
也就是说我们将一个字符串赋值给了一个数字类型的变量是有问题的,这个时候我们未运行程序,但是编辑器已经帮我们分析出了代码可能存在的问题,这时候我们运行代码,是没有报错的。
因为这个类型检测只是让我们按照TypeScript的强类型语言检测类型问题,但是我们依然是JavaScript代码依然会按照JavaScript的代码逻辑运行,如是TypeScript代码的话,这里运行就会报错。
JSDoc 类型标记
既然ts-check这么好用,我们来看看 JSDoc 类型的注释支持哪些类型的检测。
根据官方文档,JSDoc现在支持下面几个类型检测:
-
@type
-
@param
(or@arg
or@argument
) -
@returns
(or@return
) -
@typedef
-
@callback
-
@template
-
@class
(or@constructor
) -
@this
-
@extends
(or@augments
) -
@enum
下面我们选择常用的标记进行说明,更多更详细的标记可以参考官方文档。
@type
描述:用来声明变量的类型。
/**
-
- string类型
-
@type {string}
*/
let a1;
/**
-
- windows对象类型
-
@type {Window}
*/
let a2;
/**
-
- string或者boolean类型
-
@type {string | boolean}
*/
let sb;
// -------- 多种方式指定数组类型--------
/** @type {number[]} */
var ns;
/** @type {Array.} */
var nds;
/** @type {Array} */
var nas;
// ---- 还可以指定对象字面量类型。 例如,一个带有a(字符串)和b(数字)属性的对象—
/** @type {{ a: string, b: number }} */
var var9;
@param和@returns
描述:@param
语法和@type
相同,但增加了一个参数名。
/**
-
声明函数参数类型
-
@param {string} p1 - p1 是 string 类型参数
-
@param {string=} p2 - p2 是可选的 string 类型参数
-
@param {string} [p3] - 另外一种可选参数写法
-
@param {string} [p4=“test”] - p4 是可选的 string 类型参数(默认值为 “test”)
-
@return {string} - 函数返回值是 string 类型
*/
function fn3(p1, p2, p3, p4){
// TODO
}
/**
-
用 “return” 说明函数的返回值类型
-
@return {number}
*/
function fn1() {}
/**
-
可以像使用 “@return” 一样使用 “@returns”
-
@returns {{a: string, b: number}}
*/
function fn2() {}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
转存中…(img-z4spirld-1713208201068)]
[外链图片转存中…(img-amrqIYMB-1713208201068)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!