首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VScode 的 JS 智能提示弱爆了?但是我有办法!

02 IDE中的智能提示是啥? VScode的效果(没有加JSdoc) ? 代码是用严格模式来写的js游戏项目(如果读者们有需要,有机会会拿出来分享的)。...04 WebStorm一些常用的功能设置 1、快速给文件、方法、字段添加注释 ? 2、鼠标放到字段名或者方法名上时显示这些注释 ? 3、忽略不需要显示的文件类型与文件夹 ?...VScode+JSDoc+d.ts配置会比装WebStorm麻烦,同时提示起来也没有WebStorm体验好 3、WebStorm开发CocosCreator项目,只要把creator.d.ts文件放到项目中...,就可以获得到CocosCreator的内容的提示了。...如果是用laya或者白鹭,会需要配置一些相关的模块,但也是可以编译跟发布的。 4、使用智能提示会让编程能力降低吗?我还要靠做游戏维持生活,不是用来加速游戏上线的编程能力我是不会去提高的。

5.9K30

TS in JS 实践指北

今天我,告诉你,在 JavaScript 中也可以很流畅的使用 TypeScript ,而且你的老大不会找你的麻烦。...WebStorm 也支持,但是因为它包含了自家特色的智能引擎,隔壁行八竿子打不到的代码也能在当前作用域找到,所以这种神器在这里不做讨论。 什么,你用记事本?...当然,当我们访问name时,会得到firstname和nameLength两个属性。 ? demo 还记得在《ts安利指南》中提到过的"配置文件自动提示"吗?...webpack types 这里用的是 JSDoc 中的@type标记,它的语法作用是赋予后面一个单位以指定的 type 类型。...3.有引起智能提示作用域混乱的风险 在不开启静态类型检查的时候,IDE 会去完全接受你所设计的类型。要是只为了想要的提示而去强行指定 type 的话,别说是我告诉你这个方法的(跑)。

4.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    有JSDoc还需要TypeScript吗

    一旦你在本地完成了所有工作,你就需要考虑如何分发你的代码。你会检查你编译的.js文件吗?你会创建一个CI管道来自动编译你的.ts文件吗?如果你在写一个库,你如何发布你的库,以便它可以被其他项目使用?...你可以通过使用JSDoc在JavaScript中获得TypeScript的所有好处 TypeScript所提供的是一个静态类型系统。这意味着类型信息在运行代码中没有影响。...TypeScript分析器能够理解用JSDoc写的类型,并给你提供与.ts文件相同的静态分析。 我不会在这里提供完整的语法文档。...最重要的是你要知道,几乎所有你能在.ts文件中做的事情,你都能用JSDoc来做。...建议 所以现在我的建议是这样的: 当你正在做一个有编译步骤的项目时,使用TypeScript没有什么坏处 但是如果你不需要编译步骤,那么坚持使用JSDoc类型注释可能更容易。

    35120

    为你的 JavaScript 项目添加智能提示和类型检查

    基于 JSDoc JSDoc 是目前最通用的 JavaScript API 文档生成器,根据其语法编写代码注释,可以十分方便地自动生成文档。...基于 TypeScript 类型声明文件 除了使用 JSDoc 提前声明类型,更为激进的做法是直接使用微软开发的 TypeScript,为整个项目带来完善的静态类型检查。...不严格地来说,ts 类型声明文件就像用 TypeScript 语法将 JSDoc 的注释重写了一遍并提取到了单独的文件中。...另外,在 VSCode 中,类型检查并非默认开启,这意味着即使你有详尽的 JSDoc 注释或 ts 类型声明文件,依然可能在数据类型上栽跟头。...,但我们认为,与智能提示带来的开发体验、将很多可能在运行时才能发现的错误通过类型检查前置解决、顺手完成的详细文档以及重构代码时的信心相比,这点速度的牺牲是值得的。

    3.6K20

    不需要TypeScript,JS+JSDoc够了?大佬说我想多了

    刘勇:首先,JSDoc 并不能完全解决类型声明问题,它也不能在开发期就帮助开发者发现一些问题。...我更期望看到后续 TypeScript 团队能优化这块的体验。 刘易成:JSDoc 只能解决一部分类型的问题,而 TypeScript 是一个完整的类型系统。...李振:理论上也是可行的,但与 TypeScript 相比,它仍然存在一些限制: 静态类型检查的完整性:JSDoc 注释是基于注释的方式,而不是直接嵌入到语言中,因此它的类型检查可能不如 TypeScript...工具支持的差异:尽管一些工具和编辑器可以利用 JSDoc 注释进行类型检查,但与 TypeScript 相比,它们的功能和智能感知可能有所限制。...目前 TypeScript 的生态已经成规模,所以它不会像 CoffeeScript 那样昙花一现。 刘易成:我个人认为 TypeScript 会持续流行并得到更广泛的应用。

    52810

    JSDoc 真能取代 TypeScript?

    TypeScript 我们知道,是用来给 JS 加上类型的,可以实现类型提示和编译时的类型检查。 那 JSDoc 能够完成一样的功能么?Svelte 是出于什么原因弃用 TS 的呢?...比如这样的文档: 确实,这个是 JSDoc 最初的含义。 但我们说的 JSDoc 并不是这个,而是 TS 基于 JSDoc 语法实现的,在注释里给代码添加类型的语法。...现在问题来了,我有一个 src/index2.js,怎么实现一样的类型检查呢?...开启后你就会发现,js 文件里也会做类型检查了: hover 上去的时候,会提示类型信息: 注意,这可不是用 ts 语法声明的类型,而是用 JSDoc 写的。...泛型都可以用,那基于泛型的类型编程,也就是类型体操当然也可以玩: 一般这种复杂类型还是抽离到 dts 里,然后 @type {import('xxx').xxx} 引入比较好。

    42430

    TypeScript简介_TypeScript笔记1

    JS 编辑体验差的主要原因,智能提示、自动补全等现代化编辑体验都是从 Visual Studio 开始的: 基于类型推断的智能提示 基于 JSDoc 的智能提示 基于 TypeScript 声明文件的智能提示...一致,复制粘贴就可以开始了 提供可选的静态类型、类与模块:类型不仅让 JavaScript 开发能够使用高效的开发工具和实践(如静态检查和代码重构),而且不会带来运行时的性能损耗(静态类型仅在编译时存在...) 以 JavaScript 结束:TypeScript 编译产生地道的原生 JavaScript,因此支持最前沿的 JavaScript 特性,并且能在任何支持 ES3+的宿主环境中运行 可以认为TypeScript...例如: // TypeScript function f(s: string) { return s; } // 编译得到的JavaScript,类型标注统统擦掉 function f(s) { return...s; } 另外,TypeScript 虽然提供了静态类型系统,并在编译时严格检查,但并不像Haskell 类型系统一样可证明,可推理。

    1.3K30

    不是Typescript用不起,而是JSDoc更有性价比?

    难道从 TypeScript 切回 JavaScript 已经成了当下的新潮流?这难道不是在开历史的倒车吗?...是很好的选择;静态类型检查的好处,主要包括: 类型安全 代码智能感知 重构支持 而 TS 带来的主要问题则有: 某些库的核心代码量很小,但类型体操带来了数倍的学习、开发和维护成本 TypeScript...的类型声明定义成 TS 风格,更是支持了在 JSDoc 注释的类型声明中动态引入并解析 TS 类型的能力。...255, blue: 255, alpha: 0.1 }; 当然,对于内建了基于 JSDoc 的类型检查工具的 IDE,比如以代表性的 VSCode 来说,其加持能使类型安全锦上添花;与 JSDoc...,理论上如果能基于 AST 等手段当然更好,但如本例中的 Java 似乎没有特别成熟的转换工具,java-parser 等库文档资料又过少。

    55510

    JSDoc ,一个可替代 TypeScript 的方案?

    许多开发者喜欢使用TypeScript,因为它具有类型检查功能。然而,这需要额外的转译步骤,可能会带来麻烦和浪费时间。...其中一些包括: 缺乏静态类型和严格的类型检查:JavaScript非常宽容,允许将参数传递给不接受它的函数,可以省略必需的值等。这在静态类型语言中是不允许的,因为会在编译时出错。...代码注释:JSDoc不仅可以用于类型检查,还可以用于添加更多的文档,描述函数的工作原理,并生成文档网站,从而提供价值以增强代码的可维护性和理解性。...如何使用JSDoc:基础知识 由于其长期存在,JSDoc在所有现代编辑器中都得到了广泛支持,并且可以直接使用,无需任何安装。...改进通用代码文档: 除了在代码中添加必要的类型之外,JSDoc还有很多方法可以提高可读性和理解的便利性。

    83110

    JSDoc支持_TypeScript笔记19

    一.JSDoc 与类型检查 .js文件里不支持 TypeScript 类型标注语法: // 错误 'types' can only be used in a .ts file. let x: number...TypeScript 类型系统解析这些 JSDoc 标记得到额外类型信息输入,并结合类型推断对.js文件进行类型检查 P.S.关于.js类型检查的更多信息,见检查 JavaScript 文件_TypeScript...{string | boolean} */ var sb; 二者等价,只是语法略有差异 跨文件类型引用 特殊的,能够通过import引用定义在其它文件中的类型: // a.js /** * @typedef...标记时,类型检查更严格一些。...具体的,会对构造函数中的this属性访问以及构造函数参数进行检查,并且不允许(不通过new关键字)直接调用构造函数: /** * @constructor * @param {number} data

    4.1K10

    如何不编译使用 TypeScript

    当然 TypeScript 的代码一般来说是要编译成标准的 JavaScript 代码这样它才能在浏览器和 Node.js 环境中运行。...四月份发布的TypeScript 2.3支持通过注释中的类型说明来对原生 JavaScript 代码进行近代分析。您可以使用类 JSDoc 语法来描述函数功能并添加类型信息。...结论 在过去一年中,我推动简化我的 JavaScript 工具,摆脱现代 Web 开发中开发环境不断膨胀以及构建越来越复杂的困境。...使用注释来对类型进行注释与这个目的很一致:在开发过程中,我不需要多余的构建步骤就可以获得 TypeScript 的优点。...我甚至不需要在我的项目中添加 TypeScript 作为开发依赖项,我只是像文本编辑器功能那样处理类型检查,这样可以帮助我编写更好的代码。

    1.9K40

    编译期类型检查 in ClojureScript

    前言  话说"动态类型一时爽,代码重构火葬场",虽然有很多不同的意见(请参考),但我们看到势头强劲的TypeScript和Flow.js,也能感知到静态类型在某程度上能帮助我们写出更健壮的代码(当然要基于充分的单元测试上啦...希望大神指点迷津~~ 注解语法 首先GCC用到的注解语法仅为JSDoc的子集,所以直接看GCC的注解即可,而ClojureScript一般就用如下几个 @private {Type} 标识私有成员,且该成员的数据类型...标识函数返回值的数据类型和描述 @throws {Type} 标识函数可能抛出异常类型 接下来就是重点了,我们写了这么多还不就是想引入数据的类型描述吗?...那关键就是上述代码中Type到底应该怎么写了!...Type为function()时不能在声明返回值类型,否则编译时辉报警告!

    95270

    编译期类型检查 in ClojureScript

    前言  话说"动态类型一时爽,代码重构火葬场",虽然有很多不同的意见(请参考),但我们看到势头强劲的TypeScript和Flow.js,也能感知到静态类型在某程度上能帮助我们写出更健壮的代码(当然要基于充分的单元测试上啦...希望大神指点迷津~~ 注解语法 首先GCC用到的注解语法仅为JSDoc的子集,所以直接看GCC的注解即可,而ClojureScript一般就用如下几个 @private {Type} 标识私有成员,且该成员的数据类型...标识函数返回值的数据类型和描述 @throws {Type} 标识函数可能抛出异常类型 接下来就是重点了,我们写了这么多还不就是想引入数据的类型描述吗?...那关键就是上述代码中Type到底应该怎么写了!...Type为function()时不能在声明返回值类型,否则编译时辉报警告!

    72320

    【TS】588- TypeScript 3.8 新增特性介绍

    service 需要在全局注册,但是导入的 service 仅仅用于类型声明,因为上面提到的 import elision 特性,导致 service.js 中的代码不会被执行,导致运行错误。.../some-module.js"; export type { SomeThing }; import type 被用作类型注释或声明的声明语句,总是会在 TS 转 JS 中被完全删除,不会出现在JS代码中...,在被包含的类中是唯一的 TS 中,public 和 private 修饰符不能用于私有字段 私有字段不能在包含类之外访问 pr地址 https://github.com/Microsoft/TypeScript...TS3.8 通过打开 allJs 选项,能支持JS文件,并且当使用 checkJs 或者在你的.js文件顶部添加 // @ts-check 注释时,TS能对这些JS文件进行类型检查。...TS 选用 JSDoc 进行语法类型检查,而TS3.8能理解一些新的 JSDoc 属性标签。

    1.2K20

    TypeScript 5.3

    ; 然而,它只在TypeScript的夜间版本中得到支持。...switch (true) 缩小 TypeScript 5.3现在可以基于case中每个switch (true)子句中的条件执行收缩。...TypeScript 5.3现在更仔细地检查super属性访问/方法调用,以查看它们是否对应于类字段。 如果它们这样做了,我们现在将得到一个类型检查错误。 这张支票是由Jack Works提供的!...|(SomeType & Type99999NINE)的联合。 当检查一个联合体是否可以赋值给某个目标类型时,我们必须检查联合体的每个成员是否都可以赋值给目标类型,这可能会非常慢。...在TypeScript 5.3中,我们可以看到我们能够隐藏的原始交集形式。 当我们比较类型时,我们做一个快速检查,看看目标是否存在于源交集的任何组成部分中。

    24510

    使用 TypeScript 开发你的项目

    JavaScript 是动态类型的,只能在 runtime 时进行类型检查;同时它也给重构大型项目带来了的困扰,在一定程度上,它是不「易读」的。而 TypeScript 能够很好的解决上述问题。...当然,向 JavaScript 提供一个可选的静态类型是一个最重要的变化点了。 在接下来,我将简单的阐述为什么静态类型对大型项目是友好的,以及对 Function type 的一次实践写法。...静态类型对大型项目是友好的 尽早检查错误 如前文所提及的,JavaScript 是动态类型的语言,它没有 Type System,只能在 runtime 时进行类型检查,如果你不是足够的小心,难免会出现下列情况...阅读代码友好 或许你也刚好认为「代码是给人读的,只是顺便在机器上跑一下」,我相信你会在 Function、Class、Modules 或者其他地方加上 JSDoc。...不同于 JSDoc,TypeScript 提供的类型声明和模块接口形成了文档的形状,提供程序的行为提示,并在编译时会校验程序的正确性。 改动下上个例子: 当然,对大型项目来说,这可能要复杂的多。

    12410

    使用JSDoc提高代码的可读性

    作用 本人使用的是 vs code 编辑器,内置了对 jsdoc 的各种支持,同时还会根据部分常量,语法来推测出对应的类型 可以很方便的在编辑器中看到效果,所以下面所有示例都是基于 vscode 来做的...如果你把这个当作是对程序的深入了解程度、对业务的娴熟掌握,那么我觉得我也帮不了你了。...当然了,关于函数的,还是推荐使用 @param 和 @return 来实现,效果更好一些 扩展复杂类型 上边的示例大多是基于基本类型的描述,但实际开发过程中不会说只有这么些基本类型供你使用的。...必然会存在着大量的复杂结构类型的变量、参数或返回值。 关于函数参数,在 JSDoc 中两种方式可以描述复杂类型: ?...所以在vscode中,基于Promise去使用@return,有两种写法可以使用: // 函数返回 Promise 实例的情况可以这么指定类型 /** * @return {Promise<number

    1.4K20

    使用 TypeScript 开发你的项目

    JavaScript 是动态类型的,只能在 runtime 时进行类型检查;同时它也给重构大型项目带来了的困扰,在一定程度上,它是不「易读」的。而 TypeScript 能够很好的解决上述问题。 ?...当然,向 JavaScript 提供一个可选的静态类型是一个最重要的变化点了。 在接下来,我将简单的阐述为什么静态类型对大型项目是友好的,以及对 Function type 的一次实践写法。...静态类型对大型项目是友好的 尽早检查错误 如前文所提及的,JavaScript 是动态类型的语言,它没有 Type System,只能在 runtime 时进行类型检查,如果你不是足够的小心,难免会出现下列情况...阅读代码友好 或许你也刚好认为「代码是给人读的,只是顺便在机器上跑一下」,我相信你会在 Function、Class、Modules 或者其他地方加上 JSDoc。...不同于 JSDoc,TypeScript 提供的类型声明和模块接口形成了文档的形状,提供程序的行为提示,并在编译时会校验程序的正确性。 改动下上个例子: ? 当然,对大型项目来说,这可能要复杂的多。

    1.4K20
    领券