- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
好的,所以我完全相信 TypeScript 的想法,我想将它用于现有的软件项目。现在,由于 Typescript 是 javascript 的超集,这意味着我可以先将所有文件重命名为具有 .ts 扩展名而不是 .js
,然后逐渐开始转换。
但是,我在团队中并不孤单,所以我可能会一点一点地进行转换,但其他开发人员会继续使用 .ts 文件中顽皮的未类型化 JavaScript 来增加代码库的大小。
然后我的想法是有一种方法来衡量一个项目有多少百分比的真实 TypeScript(非 JavaScript),以避免通过持续集成(例如,当 TS 速率降低时中断构建),我们去向后。
这可能吗? typescript 编译器是否可以提供这种统计数据?
最佳答案
看来您想衡量代码的类型安全性。简短回答:我不知道有什么简单的方法,如果你找到了什么请告诉我 :-)
问题是,即使您的 javascript 是无类型的,也不意味着您在使用 typescript 编译它时没有对其进行类型检查。 Typescript 编译器通常可以为未类型化的 javascript 代码推断类型:
function f() {
return { a: 'a', b: 1 };
}
var x = f();
var y = x.b;
var z = x.c; // error
y = y + '1'; // error
它确实让开发人员的生活更轻松,但这意味着衡量您想要的东西并不那么容易。您可以做的一件事是尝试使用 --noImplicitAny
编译您的项目并计算它产生了多少错误 - 这将为您提供编译器无法推断出合理类型的所有地方,然后就去了使用任何
。此外,您可以捕获所有使用 tslint no-any 基本上绕过类型检查的 any
声明的实例。规则。
但在实际项目中,您通常还会有许多类型不那么严格的依赖项,这可能是必要的,也可能只是因为它们不完美。而且我认为没有办法判断 any
的出现是因为您的开发人员添加了类型不安全的代码,还是因为某些第三方依赖项需要它。
关于javascript - 测量 untyped-javascript -> typescript 转换进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766948/
我试图理解为什么人们会在 typed actors 上使用无类型的 actor .我已经阅读了几篇关于此的文章,其中一些如下: What is the difference between Typed
我使用了 TStringList 和类似的东西: geo: TStringList; response: TStringStream; begin http:=tidhttp.Create(n
我在为变量提供计数值时遇到错误(不知道这是否有意义)。 iCount := inc(iCount,1); 这是我的代码: var iCount : Integer; procedure TForm
我正在创建一个使用波兰语表示法(前缀)的YACC程序。实现起来似乎很简单,但是我遇到了一个似乎没有道理的错误。错误是: yacc:e-“calculator.y”的第33行,未键入$ 1('-') 这
我检查了问题的历史记录、搜索 google 和其他结果,但仍然对 C# reportViewer 感到完全困惑。它似乎只想使用“类型化”数据集。正如许多其他人询问的那样,我没有看到真正的答案,也许新的
以下是我正在处理的文件预览系统项目的示例。主窗体上有两个ListBoxes。第一个[lst_fileList]显示目录[files]中所有“.txt”文件的列表,每个文件的标签为[order ###。
我收到流程错误: Importing a type from an untyped module makes it any and is not safe! Did you mean to add /
这个问题在这里已经有了答案: Does "untyped" also mean "dynamically typed" in the academic CS world? (9 个回答) 关闭 6
好的,所以我完全相信 TypeScript 的想法,我想将它用于现有的软件项目。现在,由于 Typescript 是 javascript 的超集,这意味着我可以先将所有文件重命名为具有 .ts 扩展
尝试在 other places 中发布的建议后,我发现自己无法运行使用无类型 NPM 模块的 typescript 项目。下面是一个最小的例子和我尝试过的步骤。 对于这个最小的例子,我们假设 lod
我正在阅读一个幻灯片,上面写着“JavaScript 未输入类型”。这与我认为的真实情况相矛盾,因此我开始挖掘以尝试了解更多信息。 对 Is JavaScript an untyped languag
我开始使用 Scala 宏,它们很棒,但我遇到了类型化(又名类型检查)和非类型化 Tree 之间的区别s。 例如,您不能拨打 c.eval出于某种原因使用类型检查树。我在 scala 宏文档中找不到关
我想创建一个类工厂,它可以创建对它们一无所知的类(例如,不包含 header )。我使用 map 创建了一个工厂类,它通过字符串 ( map(string, mystruct) ) 存储有关类的信息(
我有一个定义 JavaFX 用户界面的 FXML 文件。在 FXML 文件中,我有以下内容: ... ... 当我尝试使用以下代码加载我的 FXML 文件时,我得到一个带有消息的 javafx.f
当我更新模型时,它抛出“不支持非开放类型中的无类型值”。更新之前它可以工作。无法确定问题的根源。有任何想法吗。 最佳答案 我之前遇到过这个错误,它是由于传递数据模型上不存在的 JSON 对象的属性引起
我尝试阅读 Akka 文档以找出 Typed 和 Untyped Actor 之间的确切区别。什么时候用什么?我不确定我错过了什么。有人可以在这里指出一些相关的东西或提供这个问题的答案吗? 最佳答案
这段带有泛型的代码片段工作得很好( Link to Simple and Working Code ) const state: Record = { isPending: false,
package main import ( "fmt" ) func printArray(x [3]int) { fmt.Printf("%d", x[1]); // can
我找不到我安装的 NodeJS 包之一的 TypeScript 定义 @type/{name},所以我尝试为它编写一个 d.ts 文件, 并将文件放在 {project root}\typings 文
我让 ServiceStack OrmLite (5.1.1) 创建表,并保留包含 TimeSpan 的对象: // ... public TimeSpan _Jobs_VehicleNotifica
我是一名优秀的程序员,十分优秀!