问题标签 [typescript1.8]
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 - 打字稿类型推断失败?
我写了一个函数来将一个数组投影到一个地图中:
基本上,遍历列表并调用用户提供的投影函数来提取 Map 的键和值。
请注意,类型 TKey 和 TElement 是从传入的投影函数的返回值推断出来的。
大多数时候,地图中的值只是原始元素:
所以我想将第二个 lambda 设为默认值。很简单:
但是,这会产生编译错误:
出于某种原因,如果我item => item
单独传入,Typescript 可以推断出 TElement == T,但如果我将其作为默认值传入,则不能。
我在这里做错了什么,还是这是 Typescript 当前的限制?如果是后者,有谁知道这是否是将来会解决的已知问题?
编辑,回应瑞安的评论:
我遇到了相同类型的错误,其中 else 子句 () 中的 map.set 在map.set(keySelector(item), item)
第二个触发错误,item
即“T 不可分配给 TElement 类型的参数”。
typescript - 单个模块的多个 TypeScript `import` 语句
尤其是在重构期间,我更喜欢import
从视觉、概念和工作流的角度来看不同的陈述:
与更常见的内联形式相反:
或包装的内联形式:
TS 编译器应该足够精明来解决这个问题,但我不知道是这样。对于一个模块使用多个TypeScript语句,TypeScript 1.8+中生成的 JavaScript 是否有任何负面影响? import
node.js - 在打字稿中导出模块
我是打字稿的新手,我正在使用 Node.js 5.10.1 和 tsc 1.8.9。我正在尝试创建一个简单的 ts 文件,其中包含我可以使用的函数。
由于我使用的是外部模块并且我的应用程序是基于 Node.js 的,因此我使用的是 typescript-require 3rd 库模块。
这是我的my-util.ts
文件:
现在...在当前为空的主ts
文件中。我想要求该my-util.ts
文件并使用该功能isFileReadable
。
我更正什么以将导出添加到模块MyUtil
?我如何要求它?
node.js - 打字稿中的匿名函数未正确转换为 javascript
我正在使用带有 tsc 1.8.9 的 nodejs 5.10.1 编写我的应用程序
一般来说,我将匿名函数的语法转换为打字稿语法。这意味着转换
至
所以我有几个地方改为声明匿名函数的打字稿方法:
转换为:
另一个例子:
转换为:
如您所见,代码部分()=>{}
未修改为function(){}
.
我是打字稿的新手,所以我可能遗漏了一些东西……但是什么?
tsc 并发症不显示任何错误消息。
谢谢
angular - 如何在 Visual Studio 2015 中为 Typescript 的 typings.json 添加类型?
我不得不问,因为这让我发疯。我在 Google 上看到了安装类型的 npm 方式,但是Angular2 的教程有一个添加一个 typings.json 文件,然后它添加了类型文件夹并自动从 DefinitiveTyped 下载了 d.ts 文件。我用jquery试过这个,但它没有下载。我还尝试重建项目,我希望 package.json 包含添加额外类型的命令。
这是我的 package.json 文件中的脚本:
这是我尝试过的 typings.json 文件。es6-shim 和 jasmine 已下载。
这可能很简单,比如在主题标签之后没有看起来像是校验和的东西。我在哪里可以找到正确的校验和,或者我需要添加什么命令到 package.json 以在编译时检索类型,或者我做错了什么?
这是另一个在 typings.json 文件中添加一行的示例,然后它会为您安装 d.ts 文件。向下滚动直到看到手动输入
typescript - 如何使用从另一个 .d.ts 文件导出的类型来扩充打字稿界面?
这是我的用例:
我们在 Promise 库周围有一个非常轻量级的抽象,因为我们现在出于各种原因已经对其进行了多次更改,并且我们不希望在整个应用程序中更改代码。
我想向 express.Request 实例添加一个中间件,我可以通过扩展接口轻松地做到这一点,如下所示:
把它单独放在一个 .d.ts 文件中,一切都很好,太棒了。
然而。这是我的麻烦;在我的抽象中,我重新导出了我们正在使用的 Promise 库的接口,以便我们可以在整个应用程序中使用它并进行良好的类型检查,而不需要到处都知道它来自哪里:
这非常有效;但是,仅当 .d.ts 文件不导出或导入任何内容时,扩充接口才有效,因此当我尝试loginP
returnPType<void>
时,它实际返回的类型,扩充突然停止工作:
(使用上面的代码,loginP
在界面的任何地方都找不到该成员)。如果我删除该import {PType}
行一切正常 - 除了我不能返回我需要的类型。
有任何想法吗?我正在使用带有 tsconfig 文件的 typescript 1.8.9,使用tsc -p .
javascript - 有没有办法在 Typescript 中自动检查数据类型的数据相等性?
在Python
你可以做这样的事情
然而在Typescript
相同类型的两个数据的相等性检查正在使用引用,我知道我可以遍历数组但是是否有语法糖来检查类似于的数据相等性Python
tuple
?
typescript - 从 Angular2 beta1 迁移到 Angular2 beta15 - .map() 错误
我正在尝试将项目从 Angular2 beta1迁移到 Angular2 beta15,但我遇到了一些问题。
我收到错误消息:'Observable< 响应 >' 上不存在 'map' 属性
出现此错误的代码示例:
代码可在此处获得:https ://github.com/AdrienTorris/AspNet5Angular2Playground
编辑:我正在使用rxjs 5.0.0-beta6和typescript 1.8.10,针对es6
javascript - 可以在不使用导出命令的情况下编写此打字稿
学习 TypeScript 并拥有一个简单的 Angular 服务:
但是浏览器抱怨:
baConfigService.ts:6 未捕获的 ReferenceError:未定义导出(匿名函数)@ baConfigService.ts:6 app.ts:48
根据我正在学习的内容,我需要 Webpack 或 CommonJS 之类的东西来让浏览器理解导出。是否可以重写它以便我不使用导出命令?专注于一次学习一件事。