问题标签 [tsc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
559 浏览

typescript - tsc --out 在我的文件中使用“导入”时出现奇怪的行为

我有两个打字稿文件,app.ts和 `angular2.d.ts'(其中包含 angular2 的类型定义)

我的tsconfig.json文件看起来像这样:

预期结果 -public/all.js将包含已编译的 ts 文件。

实际结果 -src/app.js创建文件,其中包含已编译的 ts 文件。 public/all.js也被创建,但它只包含以下行:( //# sourceMappingURL=all.js.map即只是源映射,没有实际代码)

进一步调查时,有问题的行是: import {Component, View, bootstrap} from 'angular2/angular2';src/app.ts. 一旦我删除该行,一切都会正确编译。一旦我把它放回去 - 它会导致上述问题。

我究竟做错了什么?

0 投票
1 回答
68 浏览

typescript - 从 VisualStudio 发布打字稿时 8K 命令行限制

我在 Visual Studio 中有一个打字稿项目,可以在 IDE 中很好地编译和运行。

当我尝试在 Azure 中发布它时,VS 会启动 tsc 并将所有要编译的文件放在一个命令行中。我有大约 130 个 .ts 文件。平均文件长度约为 85(完整路径),我的命令行超过 8K 并被截断,因此 tsc 收到不完整的文件集并引发错误。

为了检查问题是否存在于 8K 中,我创建了 Subst 驱动器并缩短了所有路径。在此测试期间,Tsc 编译正常。

有人可以帮我解决这个问题吗?

0 投票
2 回答
5584 浏览

typescript - typescript tsc 没有编译新创建的文件

我在一个项目上使用打字稿,所有文件都可以用 tsc 编译,我正在使用 watch 标志来查找更改。我遇到的问题是,当我创建一个新文件时,tsc 没有选择新文件,我必须退出 tsc 进程并重新启动它。这个标准是否真的很奇怪,如此出色的工具却缺少这样的基本功能。任何人都知道一种解决方法,所以我可以让 tsc 在不重新启动的情况下拾取和编译新创建的文件?

0 投票
3 回答
4012 浏览

typescript - Typescript ES6 模块语法与环境 d.ts 模块

所以让我们想象一下我有一个 50 个文件模块,每个模块包含:

export class <SomeClassName> { /* content */ }

然后,我创建了一个根文件,通过重新导出所有文件来简化使用。所以它看起来像:

然后,我通过 TSC 运行它来执行一个针对“es5”的“通用”模块,并带有描述符输出。

到目前为止,一切都很好。我将我package.json的名称my-module目标index.js作为模块的入口点输出。所以我现在决定在另一个打字稿项目中使用这个模块。

所以我为它进行了 npm 安装(让我们假装)npm install my-module并且它都被引入了,所以我现在有了生成的 d.ts 文件,并且我有了实际的 commonjs 模块,所以我可以使用它。一切似乎都很好。

然后问题来了。然后我决定使用该模块:

import {SomeClass1} from 'my-module'

它像在 TS 世界中一样爆炸,它不知道与什么my-module有关,好像我们回去看看输出的 index.js,它不包含环境模块。

所以问题来了,普通模块在包含模块名称时通常使用 package.json 作为参考点,但是 TS 使用 d.ts 文件。所以我想好吧,我需要将我的再导出包装index.ts在一个模块中,所以我尝试:

export module "my-module" { /* all other re-exports */ }

但事实证明,您只能对环境模块使用字符串模块名称,并且只能将它们放在 d.ts 文件中,但是我的 d.ts 文件是从现有代码库生成的。

所以这是我的困境,我可以手动进入并在declare module "my-module我的 d.ts 中添加一个包装器,但它不是很自动化,或者我确实喜欢使用 ES6 语法的博客文章并相对引用该文件,这最终会得到很多import {blah} from "../node_modules/my-module/dist/index",希望我们都能同意这有点愚蠢。

所以我找不到任何其他可以在自动化世界中工作的方法,因为当你使用 ES6 语法时,所有关于这个主题的博客文章和文档都使用相对文件导入,而不是从整个东西被编译和共享时导入通过 d.ts 文件。

那么这里有没有办法将我的重新导出包装在文本模块名称中?或者至少告诉 index.d.ts 包含在环境模块中?(请记住,它会为项目中的每个文件输出一个 d.ts 文件,但我们只关心通过 index.d.ts 导入模块,因为它会重新导出所有内容)。

0 投票
2 回答
1107 浏览

typescript - tsc 1.5 还需要 --module 标志吗?

Typescript 1.5添加了对tsconfig.json配置文件的支持,可以在其中指定诸如编译器选项之类的内容。

这是宣布 1.5 的博客文章中的一句俏皮话:

编译器现在支持“tsconfig.json”,这是一个允许您指定项目中的文件和要使用的编译器设置的新文件。

这让我认为--module不再需要将标志添加到编译器。但是试图编译一个导出类的简单文件我得到了这个:

当一切正常运行tsc时。--module commonjs

这是 ts 文件:

这是tsconfig.json

我的 Typescript 版本是 1.5.3,tsctest.ts并且tsconfig.json位于同一个文件夹中。

0 投票
1 回答
1773 浏览

node.js - 无法在 OS X 中通过终端安装 tsc

我正在尝试安装 tsc,但是当我运行它时,我遇到了很多错误。

我现在尝试重新安装 node 和 npm 至少 3 次,但无济于事。我为我的 npm 将标志设置为详细,这就是我得到的:

我不知所措。我已经用谷歌搜索并访问了很多页面,这似乎对其他人来说都很好,或者他们只是有一个不同的错误。关于问题是什么的任何想法?

这是我当前的 bash_profile,安装了 node 和 npm:

如果还有什么需要帮助的,请告诉我,谢谢!

0 投票
3 回答
8310 浏览

typescript - 如何将 Angular2 TypeScript 应用程序编译为单个文件?

我意识到我可以编译我的应用程序,tsc my_app.ts --target system它会为每个导入的模块生成一个 SystemJS 包装的文件,这很棒,但它会生成匿名(无名)函数,所以我不能将它们连接到单个文件。

我想过提出这个问题“如何将 TypeScript 编译为命名的 SystemJS 模块”,但我的目标只是将我的 Angular2 应用程序编译为单个文件,无论是否是 SystemJS。

0 投票
1 回答
1680 浏览

module - TypeScript 捆绑不适用于外部模块

我有一个示例 TypeScript 代码,我正在尝试使用typescript compiler (tsc)捆绑多个ts/tsx文件。

这是代码:

文件:ISample.ts

文件:Sample.ts

文件:tsconfig.json

当我运行命令时:

bundle.js已生成,但它完全是空白的。

观察:

  1. 当我将代码移动到内部模块时,问题不会发生

  2. 当我省略import/require语句并使用ISample类的声明时,问题也不会发生,但在这种情况下bundle.js不包含ISample类的代码

任何想法为什么会发生这种情况?

0 投票
2 回答
1358 浏览

gulp - 在 vscode 中,使用 isWatching 的任务生成的错误在修复后并不总是被清除

我在 vscode (0.9) 中使用 gulp 任务来尝试从 typescript 和 tslint 中获取错误。

gulp 任务正在监视我的 ts 文件的更改,并在更改时同时运行 gulp-tslint 和 gulp-typescript。我还在 vscode tasks.json 和问题匹配器中定义了一个任务来解析结果。

错误被解析并正确报告到 vscode 中。然而,即使代码被修复和保存,它们有时也会被保留。

是否有一些额外的配置可以提供给 vscode 问题匹配器,以便它正确清除错误或者它是 vscode 错误?作为一种解决方法,有没有办法手动清除所有错误?我发现清除它们的唯一方法是重新启动 vscode,这不是很好。

请注意,如果任务不是监视任务而是简单执行,则此方法可以正常工作。

我的 vscode tasks.json

我的 gulp 任务定义:

0 投票
1 回答
7374 浏览

typescript - tsc 未知编译器选项 allowNonTsExtensions

error TS5023: Unknown compiler option 'allowNonTsExtensions'在尝试运行tsc一个项目时得到了。

这是我的tsconfig.json文件。

在. typescript@1.6.2_npm

链接到正在使用的项目