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

Sentry 开发者贡献指南 - 前端(ReactJS生态)

测试 选择器 测试未定义 theme 属性 Babel 语法插件 新语法 可选链 语法 空值合并 语法 Lodash Typescript 迁移指南 Storybook Styleguide 我们使用它吗...email: PropTypes.string }) 如果您要重复使用自定义 prop-type 或传递常见共享 shape(如 organization、project 或 user), 请确保我们有用自定义集合中导入...如果我们尝试访问 undefined 或 null 对象属性,它将停止并返回 undefined。...我们不是处理渲染组件实例,而是以与用户相同方式查询 DOM。我们通过 label 文本找到表单元素(就像用户一样),我们他们文本中找到链接和按钮(就像用户一样)。...变量将抛出更有用错误消息。

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

    深入理解 TypeScript 模块

    文件模块 ---- 只要一个 JavaScript 文件包含 imports 导入模块 或者 exports 导出模块 声明,那它就是一个模块,严谨点应该叫文件模块。.../ 导出接口 ▐ 6.2 导出语句 导出语句支持将需要导出模块包装到一个对象,并且支持对导出部分重命名: import BaseComponent from "....,TypeScript 会优先选择 .ts 文件而不是 .d.ts 文件 非相对路径 非相对模块导入,编译器则会包含导入文件目录开始依次向上级目录遍历,尝试定位匹配声明文件。...,它就会尝试rootDirs所有子目录中导入。...,编译器在解析模块时可能访问当前文件夹外文件,这会导致很难诊断模块为什么没有被解析,或解析到了错误位置。

    2.5K30

    将超过5000万行JS代码迁移到TypeScript,我们得到10大见解

    TypeScript 声明发射会优先使用这些现有的名称空间标识符,而不是合成对私有文件导入。...在大多数情况下,TypeScript 声明发射很好用。我们发现一个问题是,有时 TypeScript 会将类型依赖项内联到生成类型(#37151)。...通过实验,我们发现了防止内联类型声明一些可选方法,例如: 首选 interface 而不是 type(接口不内联) 如果未导出声明所需 interface,则 tsc 将拒绝内联该类型并生成明显错误...我们编写了一个工具来执行这一操作——它只声明文件消除代码,这样任务最轻松。它不会重写或重定位代码——毕竟它不是打包器。这意味着发布声明是 TypeScript 生成声明一个不变子集。...减少发布类型数量有几个优点: 它减少了与其他软件包耦合(某些软件包不会其依赖项重新导出类型); 它防止了完全私有的类型泄漏,从而改善了封装; 它减少了需要用户下载和解压缩已发布声明文件数量和大小

    1.7K30

    如何将Node.js库转换到Deno

    它也有一个复杂解析算法,会node_modules加载像react这样普通模块名,并在无额外扩展名导入尝试添加.js或.json。...如果导入路径是一个目录,则导入index.js文件 Deno模块解析逻辑简化了很多。它使用了ECMAScript模块语法进行导入导出。该语法也被TypeScript使用。...://deno.land/std@0.114.0/node/crypto.ts"; 为了简化问题,将所有Node.js api导入移到一个名为adapter.node.ts文件,并只重新导出我们需要功能...虽然可以简单地适配器导出这些变量,但我们必须重构Node.js文件以显式地导入它们。...首先检查路径是否对应于实际文件;如果失败了会尝试添加.ts;如果再失败则尝试添加/index.ts;如果再失败则抛出一个错误。 注入Node.js全局变量 最后一步是处理Node.js全局变量。

    2.4K30

    小记 TypeScript 循环引用问题

    随着项目规模不断增长,循环引用问题似乎总是不可避免,本文就 TypeScript 可能出现循环引用问题做了一些简单记录~ 平时编写 TypeScript 代码时,一般都倾向于使用模块(Module...(尽管这个结果可能是不完整),而不是递归进行模块导入操作,还是拿上面的代码举例,假设我们首先导入 A 模块: A 模块尝试导入 B 模块 由于 B 模块尚未导入,程序开始导入 B 模块 B 模块尝试导入...A 模块导出数据(export class A) A 模块尝试导入 C 模块 由于 C 模块尚未导入,所以我们开始导入 C 模块 C 模块尝试导入 B 模块 由于 B 模块尚未导入,所以我们开始导入...A 定义, 类型 B 可以正常定义导出 B 模块将类型 B 加入到 B 模块导出数据(export class B) B 模块导入完成,继续 C 模块导入 类型 C 继承 类型 B,尝试在当前...(B 模块)导入结果访问类型 B 定义 当前(B 模块)导入结果存在类型 B 定义, 类型 C 可以正常定义导出 C 模块导入完成, 继续 A 模块导入 A 模块导入完成 但是如果我们尝试首先导入

    5.5K20

    Node.js项目TypeScript改造指南

    /node_modules/@types" ], "allowSyntheticDefaultImports": false, /* 允许从没有设置默认导出模块默认导入,仅用于提示...TypeScriptimport问题 安装完 Node 声明文件后,之前写法:const path = require('path')在 require 处仍然会报错,不过这次不是 TypeScript...) 意思是不推荐这种导入写法,因为这种 commonjs 写法导出对象是 any,没有类型支持。...如果你用 import 导入项目内其他源文件,由于原先 commonjs 写法,会提示你文件“/path/to/project/src/mod.ts”不是模块。...所幸,tsconfig 提供了一个配置allowSyntheticDefaultImports,意思是允许从没有设置默认导出模块默认导入,需要注意是,这个属性并不会对代码生成有任何影响,仅仅是给出提示

    4.4K20

    TypeScript 4.4 RC版来了,正式版将于月底发布

    如果你想现在就尝试 TypeScript RC 版,可以通过 NuGet 获取,或者使用以下 npm 命令: npm install typescript@rc TypeScript 4.4 版本部分主要亮点包括别名条件与判别式控制流分析...这些建议与 TypeScript 文件“Did you mean…?”形式完全相同。 拼写建议线索能够帮助您查找代码错误。我们也在测试成功现有代码找出了不少错误!...间接调用导入函数以提升合规性 在其他早期版本 CommonJS、AMD 以及其他非 ES 模块系统处执行导入调用操作会设置所调用函数 this 值。...// 假设这是我们导入模块,它有一个名为'foo'导出。...所以,我们才决定在 TypeScript 4.4 导入函数调用丢弃掉 this 值。 // 假设这是我们导入模块,它有一个名为'foo'导出

    2.6K20

    Node.js 项目 TypeScript 改造指南

    /node_modules/@types" ], "allowSyntheticDefaultImports": false, /* 允许从没有设置默认导出模块默认导入,仅用于提示...TypeScriptimport问题 安装完 Node 声明文件后,之前写法:const path = require('path')在 require 处仍然会报错,不过这次不是 TypeScript...) 意思是不推荐这种导入写法,因为这种 commonjs 写法导出对象是 any,没有类型支持。...如果你用 import 导入项目内其他源文件,由于原先 commonjs 写法,会提示你文件“/path/to/project/src/mod.ts”不是模块。...所幸,tsconfig 提供了一个配置allowSyntheticDefaultImports,意思是允许从没有设置默认导出模块默认导入,需要注意是,这个属性并不会对代码生成有任何影响,仅仅是给出提示

    8.3K32

    Node.js项目TypeScript改造指南

    /node_modules/@types" ], "allowSyntheticDefaultImports": false, /* 允许从没有设置默认导出模块默认导入,仅用于提示...TypeScriptimport问题 安装完 Node 声明文件后,之前写法:const path = require('path')在 require 处仍然会报错,不过这次不是 TypeScript...) 意思是不推荐这种导入写法,因为这种 commonjs 写法导出对象是 any,没有类型支持。...如果你用 import 导入项目内其他源文件,由于原先 commonjs 写法,会提示你文件“/path/to/project/src/mod.ts”不是模块。...所幸,tsconfig 提供了一个配置allowSyntheticDefaultImports,意思是允许从没有设置默认导出模块默认导入,需要注意是,这个属性并不会对代码生成有任何影响,仅仅是给出提示

    4.6K10

    VUE3TSTSX入门手册指北

    /联合类型/字面量类型/类型推论等纲要、联合枚举类型:C语言看枚举与联合类型到TypeScript/Python装饰器:《Typescript装饰器Decorators浅析》、java注解漫谈到typescript...装饰器——注解与装饰器泛型:《java泛型来聊typescript泛型变量和泛型》图书推荐:TSX入门手册.jsx是javascript文件并表明使用了JSX语法。....如何学习JSX先看官方文档:https://zh-hans.reactjs.org/docs/introducing-jsx.htmlhttps://zh-hans.reactjs.org/docs/jsx-in-depth.htmlVUE3...+TSXVue一直都是支持JSX语法,3.0对TypeScript支持又非常好,所以我开始尝试用Vue + TSX来做开发。...多个子节点是以数组形式传入,而不是像React那样作为分开参数案例代码:https://github.com/TencentBlueKing/bkui-vue3https://github.com/

    1.3K11

    最全面的 Deno 入门教程

    但是 Deno 不是 Node.js,而是全新 JavaScript 运行时,同时也支持 TypeScript。...Deno 标准库 Deno 带有一组实用函数,这些函数被称为 Deno 标准库(简称:Deno std)。Deno 并没有外部库中导入所有内容,而是尝试通过提供几种内部解决方案来使其可用。...在 Deno ,所有库导入(无论是标准库还是第三方库)均使用指向专用文件绝对路径来完成。你从这个 以服务器文件形式存在 http 库[5] 导出一个名为served函数。...如果你再次浏览器最后一部分检查结果,可能会注意到 createdAt 格式对人类很不友好,我们将用 date-fns[8] 库来使其可读: Deno 库通过绝对路径直接 Web 导入。...这些新 TypeScript 文件并不是都需要添加类型或接口,因为大多数类型是自动推导

    3.4K10

    VUE3TSTSX入门手册指北

    /联合类型/字面量类型/类型推论等纲要、联合枚举类型:C语言看枚举与联合类型到TypeScript/Python装饰器:《Typescript装饰器Decorators浅析》、java注解漫谈到typescript...装饰器——注解与装饰器泛型:《java泛型来聊typescript泛型变量和泛型》图书推荐:图片TSX入门手册.jsx是javascript文件并表明使用了JSX语法。....如何学习JSX先看官方文档:https://zh-hans.reactjs.org/docs/introducing-jsx.htmlhttps://zh-hans.reactjs.org/docs/jsx-in-depth.htmlVUE3...+TSXVue一直都是支持JSX语法,3.0对TypeScript支持又非常好,所以我开始尝试用Vue + TSX来做开发。...多个子节点是以数组形式传入,而不是像React那样作为分开参数案例代码:https://github.com/TencentBlueKing/bkui-vue3https://github.com/

    92210

    去除typescript代码类型

    ,抛出错误 "noUnusedParameters": true, // 有未使用参数时,抛出错误 "noImplicitReturns": true, // 并不是所有函数里代码都有返回值时..."types": [], // 需要包含类型声明文件名列表 "allowSyntheticDefaultImports": true, // 允许从没有设置默认导出模块默认导入。...TypeScript 文件而不是源文件位置 "mapRoot": "./", // 指定调试器应该找到映射文件而不是生成文件位置 "inlineSourceMap": true,...,总结太好了,以至于我都不是很想再写一遍主要配置 会写 TypeScript 但你真的会 TS 编译配置吗?...- 掘金 (juejin.cn) 话虽说,但一些主要功能还是得写一下 配置别名​ 在一些项目中经常能看到导入模块不是使用相对路径.

    2.6K10

    你不知道 「 import type 」

    背景 TypeScript 3.8 带来了一个新特性:仅仅导入 / 导出声明。 在 上一篇文章 , 我们使用了这个特性,解决了: 引入类型文件报文件不存在问题。...什么是「 仅仅导入 / 导出声明 」 为了能导入类型,TypeScript 重用了 JavaScript 导入语法。.../service.js 代码不会被执行,导致在运行时会被中断。 在 TypeScript 3.8 版本,我们添加了一个仅仅导入/导出 声明语法来作为解决方式。...当使用 import type 导入一个类时,你不能做类似于它继承操作。...Node 角度来看,Node 做模块解析时,会发现 types.js 引入文件是空,报错:文件不存在。 如截图所示,tsc 类型检查过程立即将这些模糊重新导出报告为错误。 2.

    4.2K61

    TypeScript 5.0 正式发布!

    allowArbitraryExtensions 在 TypeScript 5.0 ,当导入路径以不是已知 JavaScript 或 TypeScript 文件扩展名扩展名结尾时,编译器将以 {file.../car 导出值,将得到一个运行时错误。但对于某些边界情况,它确实增加了一层复杂性。例如,没有像 import "..../car"; 类型修饰符本身并不是很有用——默认情况下,模块省略仍然会删除导入,并且没有强制区分类型和普通导入导出。...在此标志下,当设置或文件扩展名暗示不同模块系统时,ECMAScript 导入导出不会被重写为 require 调用。相反,会得到一个错误。..., 123); // ❌ 编辑器不区分大小写导入排序 在 Visual Studio 和 VS Code 等编辑器TypeScript 支持组织和排序导入导出体验。

    3.8K70

    TypeScript 官方手册翻译计划【十三】:模块

    因为我也是 TypeScript 初学者,所以无法保证翻译百分之百准确,若有错误,欢迎评论区指出; 翻译内容:暂定翻译内容为 TypeScript Handbook,后续有空会补充翻译文档其它部分;...这意味着在一个模块声明变量、函数和类等在模块外面是不可见,除非使用其中一种导出方式将它们显式导出。...反过来,为了使用某个不同模块中导出变量、函数、类等,也需要使用其中一种导入方式将它们导入。...TypeScript 模块 在 TypeScript 编写基于模块代码时,有三件主要事情需要考虑: **语法:**我想要使用什么语法去进行导入导出?.../file",你可以在当前模块导入文件,而不导入文件任何变量: // @filename: app.ts import ".

    1.1K20
    领券