问题标签 [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.
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
夹中。
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.
我无法找到为什么会出现此错误的答案。
javascript - 如何在 JSDOC 中扩展 typedef 参数?
假设您在 ES6 类(文档)中有以下代码:
现在我想记录另一个函数,我们来命名它test2
。此函数采用完全相同的options
对象,但需要另一个属性parent
。
如何在不记录冗余选项的情况下记录这一点?冗余的意思:
typescript - 从模块声明文件中的命名空间合并接口
我有一个 javascript 库,其中有一个类型定义文件:https ://github.com/tyranid-org/tyranid/blob/master/tyranid.d.ts通过typings
我package.json
文件中的属性公开。
定义文件的基本版本:
我想Document
在一个完全独立的打字稿库中扩展界面:https ://github.com/CrossLead/tyranid-gracl,它通过向文档界面tyranid
添加一个方法来导入它的类型。$newMethod()
这可以做到吗?
我在第二个 repo 的单独声明文件中尝试了以下内容,但它不起作用:
如有必要,我可以修改这两个声明——很可能我没有正确编写 tyranid 的原始类型定义文件。谢谢!
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。
有用。但我想以“正确”的方式来做。
c - C - 以下代码中变量的类型定义是什么?
x
这段代码中变量的类型定义是什么?
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 文件的标志?
typescript - 我可以覆盖 TypeScript 界面中的键吗?
我知道如何扩展 TypeScript 接口,但我在这里要问的是如何覆盖接口中的特定键。例如,假设我有一个简单的界面A
:
我还有另一个简单的界面B
,也有一个bar
键,但类型不同:
本质上,我想将这些接口合并为一个,给我以下接口:
我希望我能以某种方式扩展:
但我不能,因为我收到了这个错误,这是完全可以预料的,也是设计使然:
接口“C”不能同时扩展类型“A”和“B”。“A”和“B”类型的命名属性“bar”不相同。
我只是不确定是否还有另一种我不知道的机制。我不认为交集或联合类型在这里也有帮助。
c - 带有元组的 typedef 如何工作?
我们在一个家庭作业程序中得到了这个 typedef。作为一个程序员菜鸟,我以前没有见过这样的东西。这是否意味着任何 DoubleFunction2D 实际上是 (double, double) 的 2 元组?
程序:
类型定义:
示例用法
(我的 WIP 任务解决方案,尚未编译/测试。内部):