问题标签 [typescript2.0]

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 投票
1 回答
382 浏览

typescript - 如何将 strictNullChecks 与非 nullCheck 安全的库一起使用

我觉得我在这里错过了一些大事。我已经阅读了 typescript 2.0中新的 strictNullCheck 优点的所有细节。我很想使用它,但是当我在我的项目中打开它时,它会发现我正在使用的支持库及其相关的类型定义存在问题。

我可以更改我的代码以具有健全的类型定义,但我没有一种简单的方法来更新我使用的所有其他库。这是否有效地意味着我不能使用 strictNullCheck 直到/除非我使用 update 的库是严格的 null 安全的?

0 投票
3 回答
37233 浏览

javascript - 如何在 TypeScript 2 中转换为数组?

我有一些代码将对象转换为数组类型(因此我可以在对象上使用数组函数而不会出现编译错误)。

但是在升级到 ts2 时,我得到:

错误 TS1122:元组类型元素列表不能为空。

这实际上是一个语法错误,声称您忘记了逗号或值。那么,如何修改此演员表以使其正常工作?

我试过as [IMyType]了,它奏效了,但我不想指定类型,因为我只需要array.prototype这里的函数......而且,我不认为你实际上是这样做的。

0 投票
2 回答
807 浏览

javascript - Typescript 2 如何强制执行不可为空的类型?

我知道一般的解释是编译器进行静态类型检查,但是编译器具体使用什么方法来验证没有可空类型意外发挥作用?

0 投票
2 回答
1782 浏览

visual-studio - 打字稿2.0没有输出

我正在 VS 2015 update 3 中编写一个项目,并且刚刚安装了 Typescript 2.0。

在经历了很多错误之后,我一直在进行跟踪和错误任务,以使其再次工作。现在我没有任何错误了,但我没有得到我的输出文件。

我的源文件都在客户端文件夹中,并且该文件夹位于项目的根目录中。

这是我的 tsconfig.json:

该项目在版本 1.8.x 上时确实可以编译。

这是我的 .ts 文件之一的示例:

我错过了什么吗?

---编辑---如果我删除这些行:

它可以毫无问题地构建。参数还支持吗?

--edit 2-- 我也一直在用一个空项目测试一个 VS Code 和命令行 tsc。

我的 tsconfig 正在工作:

但是,当我添加 Outdir 时,要么没有编译任何内容,要么位于错误的位置。

这确实有效:

0 投票
1 回答
63 浏览

visual-studio - TypeScript 2.0 @types 的问题 - 特别是“角度”之一

长话短说,我正在尝试从 TS 1.8 过渡到 2.* 版本,而我使用的第三方类型之一是“角度”。所以现在我从 npm @types 存储库中引用它们,它们似乎已经用第二版标准进行了修改......

我遇到了这个问题:

在此处输入图像描述

看起来既不是 Visual Studio 也不是 Visual Studio Code,gulp 编译器不理解它的新属性“类型”的引用。

我在全球范围内安装了 typescript@2.0.3。

在 compilerOptions 属性下的 tsconfig.json 中,我添加了:

但这并不能解决问题。也许有人知道解决方案?

0 投票
3 回答
8109 浏览

visual-studio-2015 - 使用 Visual Studio 和 Typescript 2.0.3 从类型转移到 @types

我试图从我的 web 项目(Visual Studio 2015 社区)中删除类型,并通过 package.json 中的新 NPM @types(typescript 2.0.3)安装 d.ts 文件:

之前 Visual Studio 的 IntelliSense 可以很好地处理类型,因为我在 VS 项目中包含了类型文件夹。NPM 将类型安装到node_modules/@types文件夹中。现在这是我的问题。我真的不想node_modules在 VS 项目中包含任何内容。 node_modules文件夹应该可以被 npm 随意删除和重新创建。Visual Studio 无法识别在项目中未包含已安装的类型!我想我可以创建一个带有 ///reference 标签的文件,但是在安装/删除类型时我必须手动维护这个文件。

有什么推荐的方法可以让 VS IntelliSense 工作吗?

0 投票
1 回答
1491 浏览

typescript - 如何在 TypeScript 2.0 中自动将库的类型声明添加到 tsconfig.json?

TypeScript 2.0提供了一种使用 @types 范围内的 npm 包获取类型声明的新方法。

根据这个答案typings,可以通过向 的属性添加一个字符串来告诉 TypeScript 在哪里查找 TypeScript 类型声明文件tsconfig.json,这也在此处记录。

tsconfig.json每次安装新类型声明时都必须手动编辑似乎很乏味。有没有办法自动做到这一点?

我正在考虑为它编写一个 npm 脚本,但我希望我不必求助于使用 bash 来编辑 JSON 文件。

0 投票
0 回答
425 浏览

typescript - TypeScript 2.0 使用符号链接的 node_modules 文件夹中的 @types 失败

长话短说,我们在触发“npm start”命令之前的构建过程会在项目的根文件夹中创建指向 node_modules 文件夹的符号链接,并将其从其他地方获取。

我们在 package.json 中的 npm start 命令设置:

所以它确实运行 npm install,但是因为我们符号链接了 node_modules 并且 npm 检测到所有安装的包,它跳转到“tsc @App/Other/Gulp/preCompile.txt”但是这失败了,因为编译器尝试从符号链接本地文件夹访问文件“node_modules”和原始“node_modules”,来自日志的确切行:

我尝试将 tsconfig.json 中的 typeroots 设置为默认值“node_modules/@types”,但没有帮助。似乎可以通过 typescript 2.0 错误,因为原始路径是相对于项目根目录的......

有人有这个问题吗?

0 投票
1 回答
184 浏览

typescript - TypeScript 2.0 method type guards?

In TypeScript 2.0, why can I have a function type guard:

But not a method type guard?:

error on hasValue():

'{' or ';' expected.

0 投票
1 回答
267 浏览

typescript - TypeScript 2.0 控制流分析和从不打字

我在 TypeScript 2.0 中有这个功能:

预期行为:类型bstring对于始终为假的条件,可能会发出警告。

实际行为:类型bnever[] | string

这是为什么?