我开始玩TypeScript,我觉得这真的很棒。但我对 *.d.ts
和 *.ts
之间的区别感到困惑。它们之间有什么区别?谁能用适当的例子来解释我?
*.d.ts 文件中允许的任何内容也可能出现在 *.ts 文件中,但反之则不然。所以 *.d.ts 允许 TypeScript 的一个子集功能。
*.d.ts文件只允许包含在输出中不生成任何JavaScript代码的TypeScript代码。如果您试图使用TypeScript的任何会生成JavaScript的特性,您将会得到一个错误。
接口是允许的,因为它们在编译后完全消失。
还允许使用常量枚举(在1.4中添加),这与在输出JavaScript中生成对象的普通枚举不同。
顶级类、变量、模块和函数必须以声明
作为前缀。通常,您会看到一个顶级的声明模块
,因此它里面的内容也是纯声明:
declare module Something {
var x;
}
它们不仅仅是将TypeScript接口暴露给JavaScript编写的代码,还非常有用。您还可以使用它们来声明一组在您的代码中广泛使用的通用接口,因此不必仅为了获得这些接口的可见性而要求
特定的物理模块。
TypeScript声明文件(*.d.ts
)
这些文件用于描述在TypeScript中使用的JavaScript文件的“形状”。
例如,假设我在TypeScript编译器知道的范围之外的某个文件中包含以下JavaScript代码:
function displayMessage(message) {
alert(message);
}
仅凭这个文件,我的TypeScript代码不会知道这个函数的存在。它不知道自己的名字,也不知道自己的参数。我们可以通过在声明文件中这样描述来解决这个问题(Example.d.ts):
declare function displayMessage(message: string);
现在我可以在TypeScript中使用函数displayMessage
而不会出现编译错误,并且当我不正确地使用它时会出现编译错误(例如,如果我提供了2个参数而不是1个参数,我会得到一个错误)。
简而言之:声明文件允许您使用TypeScript中的现有JavaScript代码和类型信息,而无需重写TypeScript的代码。
TypeScript文件(.ts
)
这是编写TypeScript时使用的标准文件扩展名。它将被编译成JavaScript。
我已经在我的.html文件中定义了这些: 然后在test.js: 但Typescript错误地指出:“找不到名称‘树’” 我也尝试编译与和放置在test.js文件的顶部,但它再次出错:
和之间的区别是什么? 上述结果如下: “Point”仅指类型,但在此处用作值。 为什么会这样呢?我肯定不会使用作为值,而是使用它来实例化类型。 在哪些情况下,我需要使用,因为不合适?
问题内容: 我正在从事一个相对较大的打字稿项目,正在用于运行节点测试和示例。据我了解,将文件编译为文件并执行。 最近,我听说了,这是一个打字稿运行时。我在typescript中尝试了一些示例,该示例可以使用。我使用来运行示例,控制台中印有许多编译消息,然后执行代码。后来我发现中有缓存文件。我觉得执行速度不会比 这似乎都和编译和使用高速缓存运行。它们之间有什么区别? 问题答案: Deno更像Node
我正在努力寻找 有什么不同?
我正在学习Typescript,并尝试实现一个简单的React/Redux应用程序。当我使用同步操作时,它工作得很好,但问题在于异步操作。我正在学习官方的redux教程。 首先,我宣布会议状态 然后我为这个动作声明接口 我使用联合类型导出它们
我在角度使用日期范围选择器。 当我点击这个按钮时,我得到下拉菜单,用一个Apply按钮选择日期范围,这个按钮有一个类“applyBtn”。 在 JQuery 中有一个选项 来获取 函数。我不能写在打字稿中是否有的等价物? 我想要这样的东西,