Categories
Tags
Ai 生成 API学习 API简化 api请求 API调用 best-practices Blogging Caching catchTag catchTags class CLI Config context Context Context.Tag CSS Customization Demo development DocC dual API effect Effect Effect.Service Effect.succeed Example extension filterOrFail flatMap Fuwari gen generator grep hooks HTML HTTP响应 IDE自动补全 iOS javascript JavaScript Javascript Layer.effect Layer.provide Layers Linux Markdown Mock Next.js ParseError pipe pokemon PostCSS process.env progress Promise promise provideService PWA react React React Hook Form React Query React Router react-native Scheduler Schema Schema.Class security Service Worker Services SSR state-management suspense Tagged Errors TaggedError TanStack Query TanStack Start tips tryPromise tsconfig TypeScript typescript Video VS Code vscode Web API Web Development yield Zod 不透明类型 二叉树 代码组织 任务调度 优先级 使用服务 依赖注入 依赖管理 值语义 入门教程 最佳实践 最小堆 函数式编程 函数组合 前端 前端开发 副作用 副作用控制 可视化 可组合性 可维护性 可访问性 命令行 响应过滤 多个错误 实现 实践指南 层 层依赖 层组合 工具链 并发控制 应用架构 延迟执行 开发技巧 开发教程 开源 异步处理 异步操作 异步编程 性能优化 手写系列 排序 接口设计 插件开发 数据结构 数据获取 数据解码 数据验证 无限滚动 日历 日志分析 服务 服务依赖 服务定义 服务实现 服务提供 测试 源码分析 状态管理 环境变量 生成器 离线支持 程序分离 算法 类型安全 类型定义 类型推断 类型系统 类定义 线性代码 组合 翻译 自定义错误 表单验证 记忆化 设计模式 语义化 运维 运行时验证 部分应用 配置 配置变量 配置服务 配置管理 重构 错误处理 错误定义 错误恢复 项目设置
454 words
2 minutes
TSConfig JavaScript 支持配置
allowJs
允许在项目中导入 JavaScript 文件,而不仅仅是 .ts 和 .tsx 文件。例如,这个 JS 文件:
// @filename: card.js export const defaultCardDeck = "Heart";
当导入到 TypeScript 文件时会引发错误:
// @filename: index.ts import { defaultCardDeck } from "./card"; console.log(defaultCardDeck);
启用 allowJs 后可以正常导入:
// @filename: index.ts import { defaultCardDeck } from "./card"; console.log(defaultCardDeck);
这个标志可以用作在 JS 项目中逐步添加 TypeScript 文件的方式,允许 .ts 和 .tsx 文件与现有的 JavaScript 文件共存。
它还可以与 declaration 和 emitDeclarationOnly 一起使用,为 JS 文件创建声明文件。
相关配置:
- checkJs
- emitDeclarationOnly
发布版本:1.8
checkJs
与 allowJs 配合使用。当启用 checkJs 时,JavaScript 文件中的错误会被报告。这相当于在项目中所有 JavaScript 文件的顶部包含 // @ts-check。
例如,根据 TypeScript 提供的 parseFloat 类型定义,以下 JavaScript 代码是不正确的:
// parseFloat 只接受字符串参数 module.exports.pi = parseFloat(3.142);
当导入到 TypeScript 模块时:
// @filename: constants.js module.exports.pi = parseFloat(3.142); // @filename: index.ts import { pi } from "./constants"; console.log(pi);
你不会得到任何错误。但是,如果你开启 checkJs,你会从 JavaScript 文件中得到错误消息:
// @filename: constants.js module.exports.pi = parseFloat(3.142); // 类型 "number" 的参数不能赋给类型 "string" 的参数 // @filename: index.ts import { pi } from "./constants"; console.log(pi);
相关配置:
- allowJs
- emitDeclarationOnly
发布版本:2.3
maxNodeModuleJsDepth
在 node_modules 下搜索和加载 JavaScript 文件的最大依赖深度。
此标志只能在启用 allowJs 时使用,如果你想让 TypeScript 推断 node_modules 中所有 JavaScript 的类型,可以使用此选项。
理想情况下,这个值应该保持在 0(默认值),并且应该使用 d.ts 文件来显式定义模块的形状。但是,在某些情况下,你可能希望以牺牲速度和潜在的准确性为代价来启用此选项。
发布版本:2.0
TSConfig JavaScript 支持配置
https://0bipinnata0.my/posts/typescript/tsconfig/04-javascript-support/