Typescript --allowJs如何工作?

Osk*_*kar 19 typescript

我读过了:

但我仍然不知道它是如何工作的以及它有什么用处.有人可以解释它是什么以及何时我想使用它?

Osk*_*kar 17

来自Clay Allsopp的媒介:

allowJs是1.8中新增的选项.TypeScript编译器将对.js文件运行快速健全性检查以查找语法错误,但是否则会将它们直接传递到输出目录.

这在将JavaScript项目迁移到TypeScript时很有用,这样您就不必一次迁移所有内容,而是开始在TypeScript中编写新代码和/或逐个迁移每个文件.您可以在官方网站上找到有关从JavaScript迁移到Typescript的更多信息,其中包含一个名为" 从JavaScript迁移 " 的教程.


Mar*_*tin 6

有几种用途。我只会合而为一。

用例:您正在编写用于Web浏览器的应用程序。您想编写ES6并将其转换为ES5。

这是的使用案例之一--allowJs。从某种意义上讲,它将执行TypeScript编译器所做的所有事情,除了类型检查您的代码。

没有--allowJS这个将会抛出一个错误:

var foo = {};
foo.name = "bar";    
Run Code Online (Sandbox Code Playgroud)

这是因为类型文字{}没有属性name。这是有效的JavaScript,因此在关闭类型检查的情况下不会触发编译器。

如果确实要使用类型检查,则可以将其重构为:

var foo: any = {};
foo.name = "bar";
Run Code Online (Sandbox Code Playgroud)

甚至更好:

var foo = {name: "bar"};
Run Code Online (Sandbox Code Playgroud)