问题标签 [tsd]

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 投票
3 回答
15270 浏览

typescript - tsd:安装本地定义文件

我有一个用 TypeScript 编写的本地节点包,我想在我的实际项目中使用它。使用 npm,我可以像这样安装本地包:

或者:

这会在 node_modules 目录中安装所需的 .js 文件。该包中还有一个生成的 .d.ts 文件,我想将其安装到我的项目中(自动将其链接到 typings/tsd.d.ts)。但是使用下面的命令没有效果:

它说>> zero results。那么,在不需要存储库的情况下安装本地定义文件的方法是什么?

更新:

我可以简单地将我的 d.ts 文件复制到类型目录和我的文本编辑器(对我来说它是带有 TypeScript 插件的 Sublime Text)它能够找到声明。目录布局是这样的:

module.exports但是,在(exports = function...在 TypeScript 中)导出唯一的函数时,我遇到了一个问题。在这种情况下,导出的函数有点“匿名”,甚至没有在 d.ts 文件中命名,所以我需要手动编辑它。

我的测试用例:

'my-package' 提供单一功能,通常作为 'myPackage' 导入:

declarationtrue在 tsconfig.json中设置为,因此该tsc命令生成了一个 my-package.d.ts 文件:

我的包应该在我的项目中这样使用:

但是, tsc 找不到myPackage,即使my-package.d.ts已复制到类型文件夹中。我需要编辑该文件,使其看起来像这样:

甚至更好地正常运行require()

0 投票
2 回答
1746 浏览

typescript - VS Code:在保存文件时观看打字稿

在 Visual Studio Code 中,我在 tsconfig.json 的代码中有以下代码

如您所见,该watch选项为真。好吧,看起来这还不足以像 atom-typescript 一样将 .ts 文件编译为 .js 。基本上,新编译的.js在保存.ts时应该在.ts文件的同一目录下。

另外,我想避免在我的根项目中使用 gulp,因为我已经将 gulpfile.coffee 用于其他方式。有人有线索吗?

0 投票
2 回答
3882 浏览

reactjs - react-router v2.0 的打字稿定义-错误`没有导出的成员'browserHistory'`

我正在使用react-router v.2.0.0.-rc3和打字稿。我通过tsd安装了定义文件。由于他们将mixin 更改为模块,因此在通过 webpack 编译 javascript 时,我的终端browserHistoryModule '"react-router"' has no exported member 'browserHistory'上出现错误。有没有一种简单的方法可以修改react-router.d.ts文件以修复错误?还是我只需要等到他们更新定义文件?我的应用程序运行良好,只是控制台错误让我感到困扰。

0 投票
2 回答
314 浏览

angularjs - 角度打字和nodejs打字'node.d.ts'冲突

我正在使用带有角度的打字稿中的nodejs应用程序,这也在打字稿中。我已经使用 gulp 将文件转换为 js。但是当我运行命令来转换我的角度文件时,它给了我错误TS2300: Duplicate identifier

在此处输入图像描述

这是我的 gulp.config.js

这是我的吞咽任务

0 投票
1 回答
7580 浏览

javascript - 使用 webpack 生成带有打字文件的打字稿库

目前我的构建过程是:

  • 使用 ES6 模块语法编写大量打字稿文件
  • 生成一个 index.ts 从一个点重新导出所有模块
  • 编译为 CommonJS + System
  • 输出描述符/键入文件

这会产生一个 index.js 文件,该文件重新导出所有内部文件,而开发人员无需使用它就需要知道它,以及许多反映文件结构的 d.ts 文件。

现在这行得通,但是如果我要对浏览器采用这种方法,我需要将所有 js 打包起来,否则这将是一个 http 请求的噩梦,它会拉入所有单独的文件。目前,该库将作为其他库的依赖项使用,因此它不是逻辑的终点,也不是任何模块/库。

现在主要问题是使用 webpack,我知道我可以加载 TS 并取出一个 commonJS 模块,但是我找不到任何d.ts使用 webpack 生成文件的方法。那么有没有办法让我在这种情况下使用 webpack 作为编译器/打包器并有一个输出my-lib.jsmy-lib.d.ts而不是当前的产生大量单个文件的方法。

== 对用例的额外说明 ==

当我说它是一个可以重复使用的库时,只是为了确保每个人都在同一页面上模块。

因此,例如,让我们假装 jquery 不存在,我将创建它,但将它写在 typescript 中,供其他开发人员在 JS 和 TS 中使用。现在 typescript 输出 js 文件和 d.ts 文件,js 文件将按照您的预期使用,但是 d.ts 文件向其他 typescript 文件解释库中包含的类型是什么。

所以假设我已经在上面列出的 TS 中开发了 jquery,然后我想在 npm/jspm/bower 等上发布这个输出(无论是 webpack 还是 tsc 创建的)。这样其他人就可以在他们自己的项目中重用这个库.

所以如果你愿意的话,webpack 通常被用来打包一个“应用程序”,它包含逻辑和业务关注点,并直接作为一个更大的关注点集的入口点使用。在此示例中,它将用作库的编译和打包步骤,并将通过var myLib = require("my-lib");或类似方式使用。

0 投票
1 回答
1503 浏览

node.js - 如何使用 mocha 和 node 解决 Typescript 外部依赖项

我有以下文件;

MyClass.ts

测试.ts

我已经使用tsd拉入mocha.d.ts并且我正在使用ts-node在节点中执行 typescript 所以我执行 mocha 如下;

编译成功,但是测试在运行时失败,因为没有定义 Phaser;

我想我将不得不做这样或类似的事情;

但这会破坏编译,并出现phaser.d.ts错误;

phaser.d.ts 不是一个模块。

如何通过命令行执行这样的测试?

复制品

0 投票
1 回答
4793 浏览

typescript - 无法使用 Angular 2 导入 toastr 模块

我正在创建一个版本为 2.0.0-alpha.46 的 Angular 2 应用程序,并尝试导入 toastr 模块。

我已经下载了库,还下载了明确输入的文件。

在我的 html 页面中,我<script>为 .js 文件添加了一个标签:

在 Visual Studio Code 中,我尝试像这样导入模块:

然后我可以在我的组件中调用 toastr.info('message') - 我什至得到智能感知;但是,当我实际尝试加载网页时,我收到 404 /src/toastr not found 错误。

如果我尝试明确查找 toastr 确定类型的文件:

我会得到“[ts 模块的完整路径] 不是模块。”

我也尝试添加///<reference path="../../toastr.d.ts" />到我用来导入模块的文件的顶部,但无济于事。

有谁知道可能发生的事情?我对我可能错的地方画了一个空白。提前致谢。

0 投票
2 回答
87 浏览

typescript - absoluteTyped 包是最新的吗?

我找不到有关如何管理包的任何信息。我希望使用 createJS,但最近一次提交是一年前。所以它可能不是当前的 JS 版本。

我是打字稿的新手。如果所有这些好的 UI 库都没有随着打字稿而发展,我不确定我是否要继续。

0 投票
1 回答
456 浏览

node.js - 将打字稿定义模块声明与节点模块导入匹配

我已经d3通过NPM.

在我的home.ts文件中,我已经导入了模块:

import * as d3 from 'd3/d3';

这编译正确,但我得到这个语义错误:

app/home/components/home.ts(2,21): error TS2307: Cannot find module 'd3/d3'.

此外,我在 IDE 中丢失了所有语法突出显示/提前输入信息。

提供的原始d3.d.ts文件TSD声明模块如下:

如果我将模块更改为'd3/d3',一切正常:

所以,我很难得到我需要的两个:

import * as d3 from 'd3';给了我期望的类型定义,但会寻找一个node_modules/d3.js不正确的模块。

import * as d3 from 'd3/d3';找到正确的模块,因为路径是正确的,但我丢失了我的类型定义,因为模块声明不匹配。

我怎样才能让这两件事匹配起来,这样我就可以简单地导入模块而不会丢失我的类型定义?

仅供参考:我使用的是 typescript 1.7.5,并且我moduleResolution的设置为node.

0 投票
1 回答
3353 浏览

typescript - TypeScript - 调用 jQuery getJSON() 函数时出错

我正在使用 TypeScript 1.7.5 和最新的 jQuery 类型定义。以下对 $.getJSON() 的调用失败并显示“错误 TS2346:提供的参数与调用目标的任何签名都不匹配”

回购定义为:

getJSON() 的类型定义是:

我错过了什么?

更新

我发现错误确实来自链接调用error(),这在常规 jQuery 中是完全合法的。如果我删除这个error()对错误的调用就会消失。知道如何处理getJSON()TypeScript 中的错误吗?