问题标签 [type-definition]

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 回答
2925 浏览

typescript - 为什么使用 Typescript - Angular2 进行类型定义(.d.ts)?

我已经看到了其他 SO 问题。但仍然对我的问题感到困惑。

我已经看到了许多使用Jquery(js), Toastr(js) toastr的示例,它们直接在没有类型定义 文件的情况下使用和其他JS库,并且它们工作得很好。 那么, 1)基本上什么是收益或损失,与类型定义文件一起去和不去?angular2 app(.d.ts)



2) Angular2 文件也是 javascript 文件。那么他们的类型定义文件呢?

注意:我没有尝试过,NPM所以我不知道您是否在实际安装Angualr2 package时将所有相关t.ds文件添加到文件typings夹中。

0 投票
1 回答
4071 浏览

typescript - AgGrid - 有没有办法获得最新版本 4.0+ 的类型定义?

"ag-grid": "4.0.5"在一个项目中使用 Angular 1.5.2 和带有 Visual Studio 2015 的 Typescript。

tsd 可用的类型定义(使用命令tsd install ag-grid --resolve --save安装以下内容: https ://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/ag-grid 但这似乎是一个非常旧的版本 2.1.2 基本上没有什么用对于我的项目。

我已经看到这个项目是使用打字稿开发的。有什么方法可以在我的项目中使用项目的内部打字稿定义?我尝试 /// <reference path="../../bower_components/ag-grid/main.d.ts" />在我的 TS 文件顶部添加,但由于该类型定义上没有模块/命名空间,我不能像以前那样引用类型(例如:),ag.grid.GridOptions也不能像全局可用一样引用类型(例如let test: GridOptionsWrapper:)我的打字稿文件不会编译。

我正在使用 Visual Studio 2015 作为 IDE,如果有另一种方法可以让 Visual Studio 了解内部类型定义,/// <reference path="../../bower_components/ag-grid/main.d.ts" />我不知道该怎么做。

有类似情况的人吗?

PS:更多详情见https://www.ag-grid.com/forum/showthread.php?tid=3581&pid=8414

更新:我按照 Niall 的回答尝试了导入建议,但是一旦包含导入语句,就找不到我的内部角度模块。示例:我可以添加: import bb = require("../../bower_components/ag-grid/main.d"); 然后 intellisense forbb.可以完美地找到 main.d.ts 中的所有类型,但是随后let a:app.services.IMyService停止编译之类的行表明 Module 'app' 没有导出的成员服务。在添加该 require 行之前,这是有效的。

如果我只是添加 /// <reference path="../../bower_components/ag-grid/main.d.ts" /> ,那么它无法编译并出现错误, Cannot compile modules unless the '--module' flag is provided. 我无法找到为什么会出现此错误的答案。

0 投票
2 回答
14961 浏览

javascript - 如何在 JSDOC 中扩展 typedef 参数?

假设您在 ES6 类(文档)中有以下代码:

现在我想记录另一个函数,我们来命名它test2。此函数采用完全相同的options对象,但需要另一个属性parent

如何在不记录冗余选项的情况下记录这一点?冗余的意思:

0 投票
2 回答
5451 浏览

typescript - 从模块声明文件中的命名空间合并接口

我有一个 javascript 库,其中有一个类型定义文件:https ://github.com/tyranid-org/tyranid/blob/master/tyranid.d.ts通过typingspackage.json文件中的属性公开。

定义文件的基本版本:

我想Document在一个完全独立的打字稿库中扩展界面:https ://github.com/CrossLead/tyranid-gracl,它通过向文档界面tyranid添加一个方法来导入它的类型。$newMethod()这可以做到吗?

我在第二个 repo 的单独声明文件中尝试了以下内容,但它不起作用:

如有必要,我可以修改这两个声明——很可能我没有正确编写 tyranid 的原始类型定义文件。谢谢!

0 投票
0 回答
41 浏览

typescript - 将自定义“东西”添加到类型定义的推荐方法,例如 globals.d.ts

我正在寻找一种扩展或更改现有类型定义的“最佳实践”方式。

我最近发现有一种这样的“最佳实践”可以扩展 lib.d.ts。它被称为 globals.d.ts。 https://basarat.gitbooks.io/typescript/content/docs/project/globals.html

但是,据我所知,该文件仅用于扩展 lib.d.ts。

所以我的问题是。扩展例如 lodash.d.ts 的“最佳实践”是什么?

目前我只有一个my-project.ts在根文件夹中

这样做需要我使用自己的接口。因此,当我想使用我的一个 lodash mixin 时,我必须使用 ILoDashWithMixins 而不是 LoDashStatic。

有用。但我想以“正确”的方式来做。

0 投票
1 回答
208 浏览

typescript - 如何在打字稿中为外部 js lib 添加类型

我在我的打字稿(angular2)项目中使用了一个小库。它只是将“Delaunay”放在全局命名空间上,作为“三角测量”函数。所以在我的代码中我可以这样做:

这工作正常,除了打字稿抱怨它不知道 Delauny,而且我无法提供定义/声明来解决这个问题。

我一直在看打字稿文档,但无济于事。我如何告诉 typescript 有一个名为 Delaunay 的对象并且它有一个“三角测量”方法?

0 投票
2 回答
69 浏览

c - C - 以下代码中变量的类型定义是什么?

x这段代码中变量的类型定义是什么?

0 投票
1 回答
64 浏览

typescript - Visual Studio 2015 TypeScript 2.1 定义位置

我正在尝试在 VS 2015 中创建一个 React-Redux Web 应用程序,但在尝试在 TypeScript 中执行所有操作时遇到了问题。

我通过 NPM 添加了 react 和 redux 模块以及@types。当我尝试将这些模块导入到我的 TS 文件中时,我得到了红色的波浪线,表示找不到模块“react”。然后我下载了 Definitively Typed NuGet 包,红色曲线消失了。

但是,该项目不会在同一个项目中同时使用 @types 和 Definitive Typed 定义进行编译。

tsconfig 文件中是否缺少强制 Visual Studio 2015 在node_modules文件夹中搜索 .d.ts 文件的标志?

0 投票
2 回答
2269 浏览

typescript - 我可以覆盖 TypeScript 界面中的键吗?

我知道如何扩展 TypeScript 接口,但我在这里要问的是如何覆盖接口中的特定键。例如,假设我有一个简单的界面A

我还有另一个简单的界面B,也有一个bar键,但类型不同:

本质上,我想将这些接口合并为一个,给我以下接口:

我希望我能以某种方式扩展:

但我不能,因为我收到了这个错误,这是完全可以预料的,也是设计使然:

接口“C”不能同时扩展类型“A”和“B”。“A”和“B”类型的命名属性“bar”不相同。

我只是不确定是否还有另一种我不知道的机制。我不认为交集或联合类型在这里也有帮助。

0 投票
1 回答
328 浏览

c - 带有元组的 typedef 如何工作?

我们在一个家庭作业程序中得到了这个 typedef。作为一个程序员菜鸟,我以前没有见过这样的东西。这是否意味着任何 DoubleFunction2D 实际上是 (double, double) 的 2 元组?

程序:

类型定义:

示例用法
(我的 WIP 任务解决方案,尚未编译/测试。内部):