问题标签 [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 回答
541 浏览

generics - 对象值参数的通用类型

在上面的代码中,我希望values是 type number[],但实际的 type 是{}[].

我究竟做错了什么?

0 投票
3 回答
1356 浏览

typescript - gulp-typescript 和 typescript 的新 @types 类型?

我已@types/jasmine作为 devDependency 安装。

我编译打字稿的 gulp 任务是这样的:

和我的 tsconfig.json

但这会导致错误:

spec\linter.spec.ts(7,1):错误 TS2304:找不到名称“描述”。
spec\linter.spec.ts(8,3):错误 TS2304:找不到名称“它”。
spec\linter.spec.ts(17,5):错误 TS2304:找不到名称“期望”。
spec\linter.spec.ts(20,3):错误 TS2304:找不到名称“它”。

我怎样才能让打字稿(当被 gulp-typescript 使用时)来识别打字@types/...

0 投票
2 回答
770 浏览

typescript - 在 Typescript 2 中,如何使用本地定义文件?

我只是想让 Typescript 2 使用我提供的本地定义文件,用于我通过 NPM 安装的 javascript 库。

首先,我安装了 MockDate:

然后,我尝试通过

只是被告知它找不到它。从这里,我创建了本地定义,我已经declare module 'mockdate',我已经完成了

在文件的顶部 - 无论我做什么,我都会继续收到(来自atom-typescript)“找不到模块'mockdate'”。

0 投票
2 回答
3604 浏览

angular - ReferenceError:未定义 MouseEvent

我正在尝试在使用angular/universal-starter (TypeScript 2.x) 作为主干的项目中使用ng2-select 。

(我尝试在 angular-cli 生成的项目中添加 ng2-select,但效果很好)

在添加这两行之后:

我的终端中已经出现错误:

这是我的tsconfig.json文件:

0 投票
0 回答
282 浏览

module - Visual Code Studio - Typescript 2.0 不解析/编译基于路径的模块(显示红色下划线)

我将 VSC 1.4 用于我的 angular 2 项目。我有一个非常简单的结构,如下所示,并尝试设置基于路径映射的模块分辨率,如此处所述:https ://github.com/Microsoft/TypeScript/issues/5039

projectRoot ├── src │ ├── models │ │ ├── modelA.ts │ ├── app │ └── modelB.ts (import {modelA} from 'src/models/modelA';) │ └── tsconfig.json

在我的 tsconfig.json 中,我将 baseURL 设置为"."

"compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, "noImplicitAny": false, "suppressImplicitAnyIndexErrors": true, "noEmitHelpers": true, "baseUrl": "." }

但是 vsc 仍然在导入文件下显示一条红线说 [ts] cannot find module 'src/models/modelA'

在我的package.json我有打字稿2。

"ts-helpers": "^1.1.1", "ts-loader": "^0.8.2", "ts-node": "^1.2.2", "tslint": "^3.14.0", "tslint-loader": "^2.1.5", "typedoc": "^0.4.4", "typescript": "^2.0.0", "typings": "^1.3.2",

谁能告诉我我是否遗漏了某些东西或某些东西没有正确设置?

顺便说一句,我正在使用 webpack。我的 webpack 可以编译它并按预期工作,但看到红线很烦人,它不支持 VSCode 的智能感知功能。

0 投票
1 回答
153 浏览

typescript - TypeScript 2.0 和 strictNullChecks 现在是否有一些 DOM 类型“错误”?

(这是使用 TypeScript 2.0.0 ( npm install -g typescript@beta) with --strictNullChecks。)

根据lib.dom.d.ts,其类型签名document.querySelector如下:

但是让这个函数返回 null 是微不足道的:

在 2.0 的严格空值检查之前,这似乎是合理的,因为您必须假设所有值都可能为空。但是启用严格的空值检查后,您会陷入一种虚假的安全感。

如果类型querySelector

那么事情会更安全。这些类型是否可能会被更新,或者我是否遗漏了一些关于它是如何工作的东西?

0 投票
1 回答
2060 浏览

angular - 如何显式使用 lib.d.ts 类型?

似乎这个问题与 IDE WebStorm 有关。我向 WebStorm 报告。并在这里追踪。

我正在使用 Angular 2 和 TypeScript 2。

如何显式使用lib.d.ts类型的位置?因为现在它在我的 IDE WebStorm 2016.3 EAP 中显示为红色:

在此处输入图像描述


我的文件中有这个:

我发现删除后import { Location } from '@angular/common';,错误就会消失。


我猜这个错误显示的原因是因为 IDE 认为这是location来自 Angular 2。

您可以从下面的屏幕截图中看到属于LocationAngular 2 的所有功能。

在此处输入图像描述


一种方法是使用const hostname = (location as any).hostname;,但有更好的方法吗?谢谢

我的tsconfig.json如果有帮助:

0 投票
1 回答
13236 浏览

angular - 错误 TS2349:无法调用其类型缺少调用签名的表达式

我正在使用 Angular 2 和 TypeScript 2。

当我使用

它给了我错误:

错误 TS2349:无法调用其类型缺少调用签名的表达式。

0 投票
4 回答
46100 浏览

typescript - 运算符 '==' 不能应用于 Typescript 2 中的类型 x 和 y

打字稿版本: 2.0.2.0

代码 我知道代码有点愚蠢,但实际上我的代码中有这些测试(使表达式访问者),我真的认为这些应该立即运行并编译。

相反,它抱怨操作数相等不能应用于类型“真”、“假”、“5”和“2”。标记它们不是布尔值或数字,它们实际上是“真”、“假”、“5”、“2”的类型。我知道'string'和'boolean'类型不能比较,但是嘿,5实际上是一个数字,而不是'5'类型还是我弄错了?

这虽然编译。

我是否遗漏了什么,为什么不将 5 和 2 视为“数字”类型?

预期行为: 应该编译

实际行为: 导致编译错误,提示“操作数 '==' 不能应用于类型 '<first argument>' 和 '<second argument>'

背景我在打字稿中遇到了这个问题,定义它应该是这样的,但是怎么会呢? https://github.com/Microsoft/TypeScript/issues/6167

0 投票
2 回答
574 浏览

typescript - 如何在 TypeScript 2.0 中定义一个检查参数是否为字符串的函数

假设我有一个函数来检查参数是否是这样定义的字符串:

现在,当我将此功能与 typescript 2.0 控制流分析一起使用时,我希望以下内容可以工作:

有没有一种不同的方法可以定义 isString 来使示例 if 语句正确地缩小参数的类型?