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

Node.js项目TypeScript改造指南

本文讲的是如何将一个旧的 Node.js 项目使用 TypeScript 进行改造,包括目录结构调整、TypeScript-ESLint 配置、tsconfig 配置、调试、常见错误处理等。...dist目录,而 TypeScript 是需要编译的,所以重点是要独立出一个源码目录和编译目标目录,推荐的目录结构如下,另外,根据不同技术栈还有一堆其他的配置文件如 prettier、travis 等等这里就省略了.../node_modules/.bin/tsc(全局安装忽略,不建议这么做,其他同学可能已经全局安装了,但可能会与你项目所依赖的 typescript 版本不一致),在 package.json 中添加以下脚本...更要命的是,IDE和编译器没有任何报错。如果这个最基本的类型检查都解决不了,那我要 TypeScript 何用?...到这就算结束了,文中只涉及到了工具类的 Node.js 项目改造,场景有限,并不能代表所有 Node.js 项目,希望能对大家有所帮助。

4.6K10

Node.js 项目 TypeScript 改造指南

本文讲的是如何将一个旧的 Node.js 项目使用 TypeScript 进行改造,包括目录结构调整、TypeScript-ESLint 配置、tsconfig 配置、调试、常见错误处理等。...dist目录,而 TypeScript 是需要编译的,所以重点是要独立出一个源码目录和编译目标目录,推荐的目录结构如下,另外,根据不同技术栈还有一堆其他的配置文件如 prettier、travis 等等这里就省略了.../node_modules/.bin/tsc(全局安装忽略,不建议这么做,其他同学可能已经全局安装了,但可能会与你项目所依赖的 typescript 版本不一致),在 package.json 中添加以下脚本...更要命的是,IDE和编译器没有任何报错。如果这个最基本的类型检查都解决不了,那我要 TypeScript 何用?...到这就算结束了,文中只涉及到了工具类的 Node.js 项目改造,场景有限,并不能代表所有 Node.js 项目,希望能对大家有所帮助。

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

    Node.js项目TypeScript改造指南

    本文讲的是如何将一个旧的 Node.js 项目使用 TypeScript 进行改造,包括目录结构调整、TypeScript-ESLint 配置、tsconfig 配置、调试、常见错误处理等。...dist目录,而 TypeScript 是需要编译的,所以重点是要独立出一个源码目录和编译目标目录,推荐的目录结构如下,另外,根据不同技术栈还有一堆其他的配置文件如 prettier、travis 等等这里就省略了.../node_modules/.bin/tsc(全局安装忽略,不建议这么做,其他同学可能已经全局安装了,但可能会与你项目所依赖的 typescript 版本不一致),在 package.json 中添加以下脚本...更要命的是,IDE和编译器没有任何报错。如果这个最基本的类型检查都解决不了,那我要 TypeScript 何用?...到这就算结束了,文中只涉及到了工具类的 Node.js 项目改造,场景有限,并不能代表所有 Node.js 项目,希望能对大家有所帮助。

    4.4K20

    TypeScript 渐进迁移指南

    --declaration --allowJs --emitDeclarationOnly --outDir types 以上命令中,所有 js 文件在 src 文件夹下,输出的 d.ts 文件位于 types...// @ts-ignore 如果只想忽略某行而不是整个文件的话,可以使用 // @ts-ignore。加上这个注释后,类型检查会忽略下一行。 使用这两个标记可以让你慢慢修正类型检查错误。...纯 JS 库 如果用了一个作者 10 年前就已经停止更新的 js 库怎么办?大多数 npm 模块仍然使用 JavaScript,没有类型信息。...把所有文件改为 .ts 文件 现在是时候把 d.ts 文件和 js 文件合并了。...由于几乎所有的类型检查错误都已修正,类型检查已经覆盖所有模块,基本上只需要把 require 改成 import 然后把代码和类型定义都放到 ts 文件中。完成之前的工作后,这一步相当简单。

    1.9K20

    TypeScript 5.3

    导入属性 TypeScript 5.3支持导入属性提案的最新更新。 导入属性的一个用例是向运行库提供有关模块预期格式的信息。...resolution-mode="require" /> // or /// 一个相应的字段也被添加到纯类型导入的导入断言中...为了更容易地查找专门用于类型目的的模块,resolution-mode现在可以在所有其他moduleResolution选项(如bundler,node10)中正常工作,并且在classic下不会出错。...合并之间 tsserverlibrary.js 和 typescript.js TypeScript本身提供了两个库文件:tsserverlibrary.js和typescript.js。...有一些API只在tsserverlibrary.js中可用(如ProjectService API),这可能对某些导入程序有用。 尽管如此,这两个包是不同的,有很多重叠,在包中重复代码。

    24510

    你不知道的 「 import type 」

    当 TypeScript 输出一个 JavaScript 文件时,TypeScript 会识别出 Options 仅仅是当作了一个类型来使用,它将会删除 Options。 // ....问题的关键在于,没有一种方式能识别它仅仅是个类型,以及是否应该删除它,因此「导入省略」并不够好。 同时,这也存在另外一个问题,TypeScript 导入省略将会去除只包含用于类型声明的导入语句。...error,它将会保留所有的导入(与 preserve 选项相同)语句,但是当一个值的导入仅仅用于类型时将会抛出错误。...Babel 和 TypeScript 是如何一起工作的 TypeScript 做了两件事 将静态类型检查添加到 JavaScript 代码中。 将 TS + JS 代码转换为各种JS版本。...现在,编译器(无论是tsc,babel还是其他)都将能够查看单个文件,并取消导入或导出(如果它是TypeScript类型)。

    4.3K61

    TypeScript系列 - 什么是TypeScript

    强类型语言的优势在于静态类型检查,概括来说主要包括以下几点: 1) 静态类型检查   静态类型检查可以避免很多不必要的错误, 不用在调试的时候才发现问题 。...局限性就是, 这种猜测可能并不正确, 并且也缺乏更多的辅助信息, 所以要正确使用一个类库, 得不断地在文档和 IDE 之间切换, 影响心情和效率。...而 TypeScript 不仅自己写的类库有丰富的类型信息, 也可以对其他纯 JS 项目进行类型标注 (DefinitelyTyped), 便于使用者直接在 IDE 中浏览 API, 效率大增。...4) 可读性 对于阅读代码的人来讲, 各种便利的类型一目了然, 更容易明白作者的意图。 TypeScript 虽然是强类型语言,但是如果对象被声明为了 any 类型,就会忽略所有的类型检查。...由于其开源性,通过 TypeScript Compiler API,开发者可以自己实现编译器(比如添加增量编译和自动编译,大幅提升编译速度),自定义语法检查,以及自定义输出结构等。

    1.1K40

    【TypeScript】在实战中的一些总结

    【One by one系列】一步步学习TypeScript 3.ts声明文件 以前称为类型定义文件,.d.ts。在使用 TypeScript 开发的项目中,常常需要引入公共模块,或者第三方库。...如果这些公共模块或第三方库是用 JS 写的,那么 TS 就无法检测到类型信息,在编译阶段会报错。 能不能将这些公共模块或第三方库的代码用 TS 重写呢?...在tsc命令后跟上-d参数即可在编译成js文件时,顺带输出d.ts文件。这样一个包既可以提供给js使用者,也可以提供给ts使用者。我们一般也会在一些npm包的新版本中看到.js 与 d.ts。...当然,博主依然有一个疑问:是否可以只提供ts,并不考虑js开发者,即只上传纯ts源代码的npm包?...*6.编译的错 TypeScript 错误 “Module '...' has no default export 这是因为引入的模块没有声明任何default导出对象。

    1.3K10

    【TS】612- 了不起的 tsconfig.json 指南

    若 compilerOptions 属性被忽略,则编译器会使用默认值,可以查看《官方完整的编译选项列表》。 编译选项配置非常繁杂,有很多配置,这里只列出常用的配置。 { // ......,即编译后不会生成任何js文件 "noEmitOnError": true, // 发送错误时不输出任何文件 "noEmitHelpers": true, // 不生成helper函数,...默认包含当前目录和子目录下所有 TypeScript 文件。 { // ... // 把基础配置抽离成tsconfig.base.json文件,然后引入 "extends": "....默认包含当前目录和子目录下所有 TypeScript 文件。 { // ......使用 --noImplicitThis 配置项: 在 TS2.0 还增加一个新的编译选项: --noImplicitThis,表示当 this 表达式值为 any 类型时生成一个错误信息。

    2.1K30

    了不起的 tsconfig.json 指南

    若 compilerOptions 属性被忽略,则编译器会使用默认值,可以查看《官方完整的编译选项列表》。 编译选项配置非常繁杂,有很多配置,这里只列出常用的配置。 { // ......,即编译后不会生成任何js文件 "noEmitOnError": true, // 发送错误时不输出任何文件 "noEmitHelpers": true, // 不生成helper函数,...默认包含当前目录和子目录下所有 TypeScript 文件。 { // ... // 把基础配置抽离成tsconfig.base.json文件,然后引入 "extends": "....默认包含当前目录和子目录下所有 TypeScript 文件。 { // ......使用 --noImplicitThis 配置项: 在 TS2.0 还增加一个新的编译选项: --noImplicitThis,表示当 this 表达式值为 any 类型时生成一个错误信息。

    4K10

    从 0 到 1 搭建一个企业级前端开发规范

    意味着可以在编码阶段发现存在的隐患,而不用把隐患带到线上去 TypeScript 会包括来自 ES6 和未来提案中的特性,比如异步操作和装饰器,也会从其他语言借鉴特性,比如接口和抽象类 TypeScript...参考文档 esModuleInterop: 参考文档 skipLibCheck:忽略所有的声明文件( *.d.ts)的类型检查 strict:开启所有严格的类型检查.如果 strict=true,则 所有...规则,并取消了 react/prop-types 规则,因为 prop 类型与 React 和 TypeScript 项目无关。...这将输出一条语义化的消息和未格式化文件的列表。上面脚本的意思是格式化src目录下的所有文件 prettier:重新格式化所有已被处理过的文件。类似于eslint --fix的工作。...= { extends: "stylelint-config-standard", rules: { // your rules }, // 忽略其他文件,只校验样式相关的文件

    2.9K20

    【smart-transform】取自 Atom 的 babeljscoffeescripttypescript 智能转 es5 库

    有些诧异,毕竟 Electron 中内置的 node 引擎,也一定不是完全兼容 es6,更不用说 coffeescript 和 typescript了。...即,每个项目的输入和输出目录可以通过配置文件来自由配置。现在还不够灵活,只支持指定唯一一个输入文件夹和唯一一个输出文件夹,不过暂时够用了。 引入 uglify-js 进行压缩和混淆。...目前支持的操作有: 将指定目录的 babeljs/coffeescript/typescript 转为 es5 兼容的js文件,并输出到另一个目录。 忽略某些文件,不对其进行转换操作。...在某些特定情况下,如果你想解析或转换其他类型的文件,只需要修改这个类,新增一个 COMPILER 即可。...coffee-script.js typescript.js 分别取自 Atom 源码中的 babel.js coffee-script.js typescript.js。

    69860

    Typescript的tsconfig.json

    composite 启用项目编译 tsBuildInfoFile 指定文件去存储增量编译信息 removeComments 删除所有注释,除了以 /!...*开头的版权信息 noEmit 不生成输出文件 importHelpers 从 tslib 导入辅助工具函数(比如 __extends, __rest等) downlevelIteration 当针对“...(TypeScript pre-1.6) baseUrl 解析文档目录 paths 模块名到基于 baseUrl的路径映射的列表 rootDirs 用来控制输出的目录结构 typeRoots 要包含的类型声明文件路径列表...这并不影响代码的输出,仅为了类型检查 esModuleInterop 通过所有导入创建名称空间对象,启用CommonJS和ES模块之间的相互操作 preserveSymlinks 不把符号链接解析为其真实路径...skipLibCheck 忽略所有的声明文件( *.d.ts)的类型检查 forceConsistentCasingInFileNames 禁止对同一个文件使用大小写不一致的引用 常用的tsconfig.json

    2.2K30

    了不起的 tsconfig.json 指南

    若 compilerOptions 属性被忽略,则编译器会使用默认值,可以查看《官方完整的编译选项列表》。 编译选项配置非常繁杂,有很多配置,这里只列出常用的配置。 { // ......,即编译后不会生成任何js文件 "noEmitOnError": true, // 发送错误时不输出任何文件 "noEmitHelpers": true, // 不生成helper函数,...默认包含当前目录和子目录下所有 TypeScript 文件。 { // ... // 把基础配置抽离成tsconfig.base.json文件,然后引入 "extends": "....默认包含当前目录和子目录下所有 TypeScript 文件。 { // ......使用 --noImplicitThis 配置项:  在 TS2.0 还增加一个新的编译选项: --noImplicitThis,表示当 this 表达式值为 any 类型时生成一个错误信息。

    2.7K42
    领券