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

使用 TypeScript 改造构建工具及测试用例

install -D typescript ts-node typescript为这个语言的核心模块,ts-node用于直接执行.ts文件,而不需要像tsc那样会编译输出.js文件。...,一般建议放到types文件夹下 最后就是.ts文件在执行时的一些配置文件设置。...在VS Code下按住Command + 单击可以直接跳转到具体的webpack.d.ts定义文件那里,可以看到详细的定义信息。 ?...探索期间的一件趣事 因为我的项目根目录已经安装了ts-node,而前端项目是作为其中的一个文件夹存在的,所以就没有再次进行安装。 这就带来了一个令人吐血的问题。...在命令行环境执行时还以为是会自动寻找父文件夹node_modules下边的依赖,其实是使用的全局包。 乖乖的在client-src文件夹下也安装了ts-node就解决了这个问题。 全局依赖害人。。

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

    TypeScript 渐进迁移指南

    和 export 语句的 d.ts 文件视作环境(ambient)模块声明,包含 import 和 export 语句的则视为普通模块文件,而不是全局声明,所以无法用于三斜杠指令。...// @ts-ignore 如果只想忽略某行而不是整个文件的话,可以使用 // @ts-ignore。加上这个注释后,类型检查会忽略下一行。 使用这两个标记可以让你慢慢修正类型检查错误。...添加 @ts-ignore 看起来不是一个好主意,因为你希望尽可能地确保类型安全。 那你就需要通过创建 d.ts 文件增补模块定义,建议创建一个 types 文件夹,加入自己的类型定义。...由于几乎所有的类型检查错误都已修正,类型检查已经覆盖所有模块,基本上只需要把 require 改成 import 然后把代码和类型定义都放到 ts 文件中。完成之前的工作后,这一步相当简单。...把 jsconfig 改为 tsconfig 现在我们需要的是 tsconfig.json 而不是 jsconfig.json。

    1.9K20

    使用 Typescript 开发 Nodejs 命令行工具

    ,指定忽略 node_modules 文件夹: node_modules/lib/ 引入 Node 类型 既然是开发 Nodejs 程序,为了获得合适的类型校验和代码提示,我们需要引入 Nodejs 的类型文件.../node_modules/.bin/tsc 可以发现在文件夹下出现了 lib/ 目录,里面就是 index.ts 编译之后的 js 文件。...注册命令 开发 Nodejs 命令行工具,就是提供一个可以直接调用的命令,而不是使用下面这种方式执行文件: node lib/index.js 我们想要的效果是执行一个命令就能调用我们的 js 文件。...这样我们在开发时就只需要关注代码编写,而不用考虑编译的问题了。 接下来我们就可以在 src 文件里面写我们的具体代码了! 注: 本文的 demo 代码可以在 github 上查看。...插件指定了一系列自定义的规则配置,只有在 extends 中指定才会生效。 rules 中可以扩展我们自己的规则。 env 中可以指定我们代码运行的环境,这样就可以自动判断某些代码是不是有错误。

    1.8K11

    使用 Typescript 开发 Nodejs 命令行工具

    其次,配合编辑器(如 VS Code),TypeScript 能提供强大的代码提示功能,我们不需要记忆很多API的具体使用,在编写代码时编辑器会自动进行提示。.../node_modules/.bin/tsc 可以发现在文件夹下出现了 lib/ 目录,里面就是 index.ts 编译之后的 js 文件。...注册命令 开发 Nodejs 命令行工具,就是提供一个可以直接调用的命令,而不是使用下面这种方式执行文件: node lib/index.js 我们想要的效果是执行一个命令就能调用我们的 js 文件。...这样我们在开发时就只需要关注代码编写,而不用考虑编译的问题了。 接下来我们就可以在 src 文件里面写我们的具体代码了! 注: 本文的 demo 代码可以在 github 上查看。...插件指定了一系列自定义的规则配置,只有在 extends 中指定才会生效。 rules 中可以扩展我们自己的规则。 env 中可以指定我们代码运行的环境,这样就可以自动判断某些代码是不是有错误。

    84520

    types 和 @types 是什么?

    'jquery'; ❞ 这里的意思是 TypeScript 没有找到 jquery 这个包的定义,你可以通过npm install @types/jquery安装相关声明,或者自己定义一份.d.ts...包类型定义的查找 就好像 node 的包查找是先在当前文件夹找 node_modules,在它下找递归找,如果找不到则往上层目录继续找,直到顶部一样, TypeScript 类型查找也是类似的方式。...如果找不到,则会去 node_modules 中的@types (默认情况,目录可以修改,后面会提到)目录下去寻找对应包名的模块声明文件。.... ❞ 变量类型定义的查找 和包查找类似,默认情况下变量类型定义的查找也会去 @types 下去寻找。只不过并不是直接去 @types 找,而是有一定的优先级, 这个过程类似原型链或者作用域链。...typeRoots: 用来指定默认的类型声明文件查找路径,默认为node_modules/@types, 指定typeRoots后,TypeScript 编译器会从指定的路径去引入声明文件,而不是node_modules

    2.8K20

    巧妙利用TypeScript模块声明帮助你解决声明拓展

    \n\n## 什么是声明文件\n\n为了照顾一些接触 TS 并不是很多的小伙伴,我们简单聊聊什么是 Typescript 声明文件。...\n\n原因其实非常简单,typescript 文件中本质上是对于我们的代码进行静态类型检查。当我们使用一个没有类型定义的全局变量时,TS 会明确告知找不到该模块。...那么我们需要将自定义的声明文件书写在 node_modules 中去吗?\n\n这显然是不合理的,因为 node_modules 中的目录是非常不稳定的。...\n\n此时就需要我们通过类型定义文件来进行全局变量的扩展:\nts\n// types/index.d.ts 利用接口合并,扩展全局的 String 类型\n// 为它添加一个名为 hello 的方法定义...它们的区别是:types 用于声明对另一个库的依赖,而 path 用于声明对另一个文件的依赖。

    1.4K30

    深入理解 TypeScript 模块

    TypeScript 中的模块如何查找的,为什么会隐式查找到index.ts、index.js,为什么会到 node_modules 中去找模块? 如何定义一个全局变量供所有代码共享?...实际上,它是一种特殊的模块,我们称之为“全局模块”,这个模块里面的任何定义都是全局共享的!毋庸置疑,使用全局模块是危险的,因为它会与文件内的其他代码命名冲突。.../my-module.js"; ▐ 7.4 具有副作用的导入模块 偶尔会存在这种场景,我只想导入模块,而不像要这个模块内的具体导出,那么可以像下面这样进行导入: import "....,TypeScript 会优先选择 .ts 文件而不是 .d.ts 文件 非相对路径 非相对模块的导入,编译器则会从包含导入文件的目录开始依次向上级目录遍历,尝试定位匹配的声明文件。...同时,TypeScript在package.json里使用字段types来表示类似main的意义,编译器会使用它来找到要使用的main定义文件。 相对模块 ?

    2.5K30

    一文读懂TS的(.d.ts)文件

    TS 书写代码,并且给变量都指定了明确的类型,这时 TS 可以很好的完成类型推断工作 但是有时,我们不免会引入外部的 JS 库,这时 TS 就对引入的 JS 文件里变量的具体类型不明确了,为了告诉 TS...这个时候你不能用TS重写主流的库,这个时候我们只需要编写仅包含类型注释的d.ts文件,然后从您的 TS 代码中,可以在仍然使用纯 JS 库的同时,获得静态类型检查的 TS 优势。.../node_modules/@types 文件夹,自动从这里来获取模块的类型定义,当然了,你需要独立安装这个类型定义。.../typings 中的才会应用,而 ./node_modules/@types 中的则不会。 如果配置了 types,则只有列出的包才会包含。...*.d.ts和@types关系 @types 是 npm 的一个分支,用来存放 *.d.ts 文件,如果对应的 npm 包存放在 @types 中,要使用必须下载!

    4.6K21

    VSCode拓展推荐(前端开发)

    EditorConfig插件 Emoji 在代码中输入emoji endy 将输入光标跳转到当前行最后面 ESLint ESLint插件,高亮提示 File Peek 根据路径字符串,快速定位到文件...filesize 状态栏显示当前文件大小 Find-Jump 快速跳转到指定单词位置 Font-awesome codes for html FontAwesome提示代码段 ftp-sync 同步文件到.../JS postfix completion ts/js后缀提示 TSLint TypeScript语法检查 Types auto installer 自动安装@types声明依赖 TypeScript...Typescript React code snippets React Typescript代码段 TypeSearch TS声明文件搜索 Version Lens package.json文件显示模块当前版本和最新版本...vetur 目前比较好的Vue语法高亮 View Node Package 快速打开选中模块的主页和代码仓库 VS Live Share 实时多人协助 VSCode Great Icons 文件图标拓展

    2.3K41

    一文读懂 TS 中 Object, object, {} 类型之间的区别

    | undefined; has(key: K): boolean; set(key: K, value: V): this; } 二、Object vs object vs {} 也许令人困惑的是...下面我们来看一下上述两个接口的相关定义: 1、Object 接口定义 // node_modules/typescript/lib/lib.es5.d.ts interface Object {...下面我从以下几个方面来分析一下它们之间的区别: 3.1 内联 对象字面量类型可以内联,而接口不能: // Inlined object literal type: function f1(x: { prop...支持在 .ts 文件中通过在报错一行上方使用 // @ts-ignore 来忽略错误。...它由以下两个接口来定义: 它由以下两个接口来定义: Object 接口定义了 Object.prototype 原型对象上的属性; // node_modules/typescript/lib/lib.es5

    17.8K32

    【Vite基础】003-Vite 中使用 TypeScript

    只编译(将 ts 编译成 js),不校验。 2、手动校验 # 只校验,不输出编译的文件 tsc --noEmit 二、编译代码验证 直接使用 ts 语法!...name: '大哥刘备', age: 22, }; 第二步:发现 vs code 报错 说明:vs code 天生支持 ts 语法校验!...代码 运行时出错 开启 isolatedModules 后 修正写法后的代码 运行并访问的结果 正常无错! 3、作用2:访问枚举 代码 关闭时,正常不报错!...d.ts和declare究竟是干嘛用的 https://blog.csdn.net/qq_34551390/article/details/118800743 4、作用3:ts 文件中没有导入或导出则报错...报错 添加导出后 七、clent types 1、概述 Vite 提供了一些内置的对象,但默认不知道这些变量的类型,需要配置以令其显示。

    9510

    搭建node服务(三):使用TypeScript

    四、 自定义类型 TypeScript 会自动从 node_modules/@types 目录获取模块的类型定义,引用的模块都需要安装对应类型库,如: npm install @types/koa --...save 安装后,会在node_modules/@types 目录下找到koa 文件夹,该文件夹下有koa相关的类型定义文件。...] } src/types是存放自定义类型的目录,本示例中src/types目录已被include包含,如果自定义的类型目录未被include包含还需要在include中添加该目录。...编写类型定义文件 src/types/koa/index.d.ts import * as Koa from "koa"; declare module "koa" { interface Request...由于src/types/koa/index.d.ts自定义类型已经扩展了Koa.Request的这两个属性,执行npm run build命令,使用 tsc 进行编译,可以编译成功。

    2.9K20

    搭建node服务(三):使用TypeScript

    四、 自定义类型 TypeScript 会自动从 node_modules/@types 目录获取模块的类型定义,引用的模块都需要安装对应类型库,如: npm install @types/koa --...save 安装后,会在nodemodules/@types 目录下找到koa 文件夹,该文件夹下有koa相关的类型定义文件。... ] } src/types是存放自定义类型的目录,本示例中src/types目录已被include包含,如果自定义的类型目录未被include包含还需要在include中添加该目录。...编写类型定义文件 src/types/koa/index.d.ts import * as Koa from "koa"; declare module "koa" {     interface Request...由于src/types/koa/index.d.ts自定义类型已经扩展了Koa.Request的这两个属性,执行npm run build命令,使用 tsc 进行编译,可以编译成功。

    2.2K30

    模块解析机制_TypeScript笔记14

    写在前面 模块化机制让我们能够把代码拆分成多个模块(文件),而编译时需要知道依赖模块的确切类型,那么首先要找到它(建立模块名到模块文件路径的映射) 实际上,在 TypeScript 里,一个模块名可能对应一个....ts/.tsx或.d.ts文件(开启--allowJs的话,还可能对应.js/.jsx文件) 基本思路是: 先尝试寻找模块对应的文件(.ts/.tsx) 如果没有找到,并且不是相对模块引入(non-relative...,试图找到匹配的定义文件,例如: // 源码文件 /root/src/folder/A.ts import { b } from "moduleB" 会尝试查找以下文件: /root/src/folder.../@types/moduleB.d.ts /root/node_modules/moduleB/index.ts|tsx|d.ts /node_modules/moduleB.ts|tsx|d.ts...|d.ts 与 NodeJS 查找逻辑几乎一致,只是会额外地从node_modules/@types里寻找d.ts声明文件 三.附加模块解析标记 构建时会把.ts编译成.js,并从不同的源位置把依赖拷贝到同一个输出位置

    1.7K30

    初次在Vue项目使用TypeScript,需要做什么

    : [ "node_modules" ] } ESLint配置 为什么使用 ESLint 而不是 TSLint?...此外,不同的用户社区通常有针对ESLint而不是TSLint构建的lint规则(例如React hook或Vue的规则)。鉴于此,我们的编辑团队将专注于利用ESLint,而不是复制工作。..., 根路径下创建@types文件夹,里面存放*.d.ts文件,专门用于管理项目中的类型定义文件。...node_modules中找到对应的包文件夹,类型文件一般都会存放在types文件夹内,其实类型定义文件就像文档一样,这些内容能够清晰的看到所需参数和参数类型。...在导入ts文件时,不需要加 .ts 后缀 为项目定义全局变量后无法正常使用,重新跑一遍服务器(我就碰到过...)

    6.6K40

    TypeScript 深水区:3 种类型来源和 3 种模块语法

    @types 包的目录(默认是 node_modules/@types): 除了给 node 等环境的 api 加上类型声明外,@types 包还有一种用途,就是给一些 JS 的包加上类型声明: 如果代码本身是用...但如果代码不是用 ts 写的,那可能就需要单独写一个 @types/xxx 的包来声明 ts 类型,然后在 tsconfig.json 里配置下,加载进来。...全局类型声明 vs 模块类型声明 我们写的 JS 代码就是有的 api 是全局的,有的 api 是模块内的,所以 TS 需要支持这个也很正常。...除了在变量声明时定义类型外,TS 也支持通过 declare 单独声明类型。只存放类型声明的文件后缀是 d.ts。...常见的是 vue 的类型是存放在 npm 包下的,而 react 的类型是在 @types/react 里的。因为源码一个是 ts 写的,一个不是。

    65610

    TypeScript学习笔记(三)—— 编译选项、声明文件

    上述示例中,所有src目录和tests目录下的文件都会被编译 exclude 定义需要排除在外的目录 默认值:["node_modules", "bower_components...我们希望为 js 文件里的变量和方法添加真实的类型,这就需要定义声明文件。...我们期待:在 Vscode 开发时,只要敲出方法,编辑器可以自行提示该方法参数的类型是什么,这样我就不会把原本该写成数值类型的参数写成字符串类型了,大大降低代码出错风险。...这样做只能保证代码不报错,但是鼠标移动到 multiply 上面是没有参数类型提示的,这明显不是我们想要的。...(如果前面创建了 global.d.ts,删除它) 创建 test-declare/types/multiply/index.d.ts 文件写声明文件,types 下目录的名字一定要和第三方库的名字一毛一样

    2.6K20
    领券