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

typescript - Typescript 2.0 找不到模块

我使用 VS Code 1.3.0 作为编辑器和 Typescript 2.0。我的tsconfig.json根目录中有一个文件属性, "files":["newfile.ts"]并且newfile.ts位于我的根目录中。我运行 npm i --save lodash npm i @types/lodash --save并安装了定义文件。在我的 newfile.ts 中找不到 import * as _ from "lodash" and I'm getting a module not found error on lodash. If lodash and its type are installed, why the模块错误?

我已经多次重新启动我的编辑器,但无济于事。

0 投票
1 回答
257 浏览

typescript - Typescript strictNullChecks 和闭包

假设我有这样的代码:

if (x)充当类型保护x,因此stringconsole.log. 但是当从 中的闭包中引用时.then,它的类型是string | undefined. .then这一定是因为在代码运行之前,该值可能会在类型保护之外更改回未定义。但是,如果它没有再次设置,Typescript 一定不会进行那种可以让它检测到的分析。

!我可以通过使用运算符 on来解决它x。但是我发现我经常在我的代码库中做这种事情,并且它并不能防止以后通过使 x 未定义而被破坏。

有没有其他方法可以解决这个问题?我是否正确理解了这个问题?

0 投票
2 回答
24282 浏览

javascript - Import js file with TypeScript 2.0

Abstract

I'm trying to import ".js" file from an external location (i.e. node_modules) I'm trying to do this using commonjs module pattern, however import wouldn't want to work with ".js" file types until I add ".d.ts" file near ".js" file in the same folder.

But the problem is that I wouldn't want to affect any node_modules with my ".d.ts" files. I want it to be located in another folder, separate from node_modules but as soon as I do that, typescript compiler throws an error:

Example

I have the following folder structure:

y.js has the following content

y.d.ts has the following content

main.ts has the following content

Now when I'm trying to compile main.ts with:

I will get an error:

Question

How to import ".js" files and being able to define it's ".d.ts" declarations while having both files located in different locations.


Edit

Here is the link to example project. Be sure to use TypeScript version 2.0 compiler. And the tsc command above to see the error.

0 投票
2 回答
2313 浏览

reactjs - Redux、React、Typescript:Connect 返回需要道具的视图类

我有以下示例:

引发<SayMessageContainer/>

类型“IntrinsicAttributes & IntrinsicClassAttributes & IMessage & { children?: ReactElement...”中缺少属性“消息”。

应该如何更改这个示例,以便 Connect 可以通过 mapStateToProps 提供道具?

注意/可能的提示:SayMessageContainer 是 SayMessage 类型,这对我来说似乎不合适。

打字稿 2.0.0

编辑

编写自己的容器似乎可以解决它,但我宁愿弄清楚如何正确使用connect

编辑 2 使用以下类型:

0 投票
2 回答
117508 浏览

typescript - TypeScript 导入路径别名

我目前正在开发一个 TypeScript 应用程序,该应用程序由多个用 TypeScript 编写的 Node 模块组成,这些模块安装在node_modules目录中。

在继续之前,我想指出我正在使用 TypeScript 2.0,如果需要的话,我也不反对使用 2.1 开发版本。我只是想让这个工作。

每个 Node 模块的结构大致如下:

dist 文件夹是生成的源,此路径是outDir在我的tsconfig.json文件内部配置的。我还将我的main属性配置package.jsondist/es2015/index.js.

需要注意的重要事项:

  • 在我的项目中,我使用moduleResolution的是node
  • 我正在使用 TypeScript 2.0
  • 我不是在问如何从包中导入文件。我通过 Npm 安装包,然后packagename/从使用此模块的应用程序中导入它。

现在是我的问题/问题。从这个模块导入文件时,我希望能够做到这一点:

但是,该文件无法解析到该dist/es2015/utils目录。理想情况下,我希望我的导入从这个特定dist文件夹而不是从根目录解析,这似乎正在发生。

上面的导入需要写成下面这样才能让它工作:

但是,dist/es2015每次都写并不理想,它只会让一些导入看起来很长。有没有办法可以配置我的模块以解析到dist/es2015目录?我不想在我的项目中添加覆盖,理想情况下每个模块都会指定从哪里解析文件。

如果您在创建要与 Jspm 一起使用的插件/模块时在 Jspm 中仍然不确定我在问什么(如果这令人困惑,我深表歉意),您可以package.json在模块内部指定如下内容:

我正在 TypeScript 中寻找与上述内容相同的内容(如果存在)。映射指令,因此当最终用户运行npm install my-cool-package然后在他们的应用程序中尝试导入某些内容时,默认情况下所有导入都解析到commonjs目录(上面的 Jspm 示例使用 amd,但前提相同)。

这是可能的还是我在这里误解了什么?我知道最新版本中添加了一些新的路径映射功能,但几乎不存在使用它们的文档。

0 投票
1 回答
1070 浏览

javascript - 反向 TypeScript 类型保护

我正在使用typescript 2.0.0--strictNullChecks以下类型防护:

这使nullundefinedNaN无效Infinite。我想要一个相反的:

当然,这种语法不起作用。有没有已知的方法来实现这一点?

0 投票
0 回答
34 浏览

typescript - 是否可以在不指定完整路径的情况下从标准库位置导入文件?

我正在尝试导入/usr/local/lib/node_modules/typescript/lib/lib.es2015.core.d.ts,但我目前正在指定填充路径...我希望能够执行以下操作:

是否可以将编译器指向标准导入路径?

0 投票
1 回答
191 浏览

typescript - 升级到 TSC 2.0.0 - VS Code 语法检查器无法解析节点模块

问题

在此处输入图像描述

  • 导入 NPM 模块时,VS Code 无法显示有关 NPM 模块的导入信息。[TS] Cannot find module 'lodash'/'react'/'etc'.
  • 导入用 TypeScript 编写的 NPM 模块(或其中包含typings属性的 NPM 模块package.json)时,我没有看到这个问题。
  • WebPack 仍然可以毫无问题地编译,这让我相信这是 VS Code 或 Typings 工具的问题。

设置

tsc我今天早上跑了1.8。我后来升级到tsc2.0.0。

VS 代码 1.4.0 6276dcb0ae497766056b4c09ea75be1d76a8b679

节点 5.10.0

tsc -v: === "版本 2.0.0"

tsconfig.json:

完整的项目源代码在这里。免责声明:这是一个相当大的代码库。

0 投票
1 回答
2693 浏览

angular - 如何将 core-js Map 导入 angular-cli webpack 生成的应用程序

^1.0.0-beta.11-webpack" 现在将 core-js 用于 polyfill。

我正在尝试导入地图以在我的应用程序中使用

我什至使用添加了 core-js d.ts 文件

但是两个导入都没有解析 Map 符号。

我错过了什么?

编辑 1 | 产生的错误

我现在可以使用 Map 实体,但我在 cosole 中遇到很多错误,即使我可以设置/获取地图键/值

0 投票
2 回答
9849 浏览

express - 赋值表达式的左侧不能是常量或只读属性

当我在我的 Express 服务器上使用这一行时,它在 TypeScript 1.x 中运行良好

(的用法mongoose.Promise = global.Promise;来自猫鼬文档

更新到 TypeScript 2.x 后,它在终端中显示此错误,并且不会让我启动服务器。

赋值表达式的左侧不能是常量或只读属性。

我该如何解决这个问题?谢谢