问题标签 [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.
generics - 对象值参数的通用类型
在上面的代码中,我希望values
是 type number[]
,但实际的 type 是{}[]
.
我究竟做错了什么?
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/...
?
typescript - 在 Typescript 2 中,如何使用本地定义文件?
我只是想让 Typescript 2 使用我提供的本地定义文件,用于我通过 NPM 安装的 javascript 库。
首先,我安装了 MockDate:
然后,我尝试通过
只是被告知它找不到它。从这里,我创建了本地定义,我已经declare module 'mockdate'
,我已经完成了
在文件的顶部 - 无论我做什么,我都会继续收到(来自atom-typescript
)“找不到模块'mockdate'”。
angular - ReferenceError:未定义 MouseEvent
我正在尝试在使用angular/universal-starter (TypeScript 2.x) 作为主干的项目中使用ng2-select 。
(我尝试在 angular-cli 生成的项目中添加 ng2-select,但效果很好)
在添加这两行之后:
我的终端中已经出现错误:
这是我的tsconfig.json文件:
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 的智能感知功能。
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
是
那么事情会更安全。这些类型是否可能会被更新,或者我是否遗漏了一些关于它是如何工作的东西?
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。
您可以从下面的屏幕截图中看到属于Location
Angular 2 的所有功能。
一种方法是使用const hostname = (location as any).hostname;
,但有更好的方法吗?谢谢
我的tsconfig.json如果有帮助:
angular - 错误 TS2349:无法调用其类型缺少调用签名的表达式
我正在使用 Angular 2 和 TypeScript 2。
当我使用
它给了我错误:
错误 TS2349:无法调用其类型缺少调用签名的表达式。
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
typescript - 如何在 TypeScript 2.0 中定义一个检查参数是否为字符串的函数
假设我有一个函数来检查参数是否是这样定义的字符串:
现在,当我将此功能与 typescript 2.0 控制流分析一起使用时,我希望以下内容可以工作:
有没有一种不同的方法可以定义 isString 来使示例 if 语句正确地缩小参数的类型?