问题标签 [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.
typescript - 如何将 strictNullChecks 与非 nullCheck 安全的库一起使用
我觉得我在这里错过了一些大事。我已经阅读了 typescript 2.0中新的 strictNullCheck 优点的所有细节。我很想使用它,但是当我在我的项目中打开它时,它会发现我正在使用的支持库及其相关的类型定义存在问题。
我可以更改我的代码以具有健全的类型定义,但我没有一种简单的方法来更新我使用的所有其他库。这是否有效地意味着我不能使用 strictNullCheck 直到/除非我使用 update 的库是严格的 null 安全的?
javascript - 如何在 TypeScript 2 中转换为数组?
我有一些代码将对象转换为数组类型(因此我可以在对象上使用数组函数而不会出现编译错误)。
但是在升级到 ts2 时,我得到:
错误 TS1122:元组类型元素列表不能为空。
这实际上是一个语法错误,声称您忘记了逗号或值。那么,如何修改此演员表以使其正常工作?
我试过as [IMyType]
了,它奏效了,但我不想指定类型,因为我只需要array.prototype
这里的函数......而且,我不认为你实际上是这样做的。
javascript - Typescript 2 如何强制执行不可为空的类型?
我知道一般的解释是编译器进行静态类型检查,但是编译器具体使用什么方法来验证没有可空类型意外发挥作用?
visual-studio - 打字稿2.0没有输出
我正在 VS 2015 update 3 中编写一个项目,并且刚刚安装了 Typescript 2.0。
在经历了很多错误之后,我一直在进行跟踪和错误任务,以使其再次工作。现在我没有任何错误了,但我没有得到我的输出文件。
我的源文件都在客户端文件夹中,并且该文件夹位于项目的根目录中。
这是我的 tsconfig.json:
该项目在版本 1.8.x 上时确实可以编译。
这是我的 .ts 文件之一的示例:
我错过了什么吗?
---编辑---如果我删除这些行:
它可以毫无问题地构建。参数还支持吗?
--edit 2-- 我也一直在用一个空项目测试一个 VS Code 和命令行 tsc。
我的 tsconfig 正在工作:
但是,当我添加 Outdir 时,要么没有编译任何内容,要么位于错误的位置。
这确实有效:
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 工作吗?
typescript - 如何在 TypeScript 2.0 中自动将库的类型声明添加到 tsconfig.json?
TypeScript 2.0提供了一种使用 @types 范围内的 npm 包获取类型声明的新方法。
根据这个答案typings
,可以通过向 的属性添加一个字符串来告诉 TypeScript 在哪里查找 TypeScript 类型声明文件tsconfig.json
,这也在此处记录。
tsconfig.json
每次安装新类型声明时都必须手动编辑似乎很乏味。有没有办法自动做到这一点?
我正在考虑为它编写一个 npm 脚本,但我希望我不必求助于使用 bash 来编辑 JSON 文件。
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 错误,因为原始路径是相对于项目根目录的......
有人有这个问题吗?
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.
typescript - TypeScript 2.0 控制流分析和从不打字
我在 TypeScript 2.0 中有这个功能:
预期行为:类型b
为string
。对于始终为假的条件,可能会发出警告。
实际行为:类型b
为never[] | string
。
这是为什么?