Nur*_*ony 42 typescript typescript1.4
我开始玩TypeScript,我发现它非常棒.但我感到困惑的区别*.d.ts和*.ts.他们之间有什么区别?任何人都可以用适当的例子来解释我吗?
Dav*_*ret 47
TypeScript定义文件(*.d.ts)
这些文件用于描述在TypeScript中使用的JavaScript文件的"形状".
例如,假设我有以下JavaScript(Example.js):
function displayMessage(message) {
alert(message);
}
Run Code Online (Sandbox Code Playgroud)
仅使用此文件,我的TypeScript代码就不会有任何线索存在此函数.它不会知道它的名字,也不会知道它的参数.我们可以通过在定义文件中描述它来解决这个问题(Example.d.ts):
declare function displayMessage(message: string);
Run Code Online (Sandbox Code Playgroud)
现在我可以displayMessage在没有编译错误的情况下使用TypeScript中的函数,并且当我错误地使用它时会遇到编译错误(例如,如果我提供2参数而不是1我会收到错误).
简而言之:定义文件允许您在TypeScript中使用现有的JavaScript代码,而无需在TypeScript中重写代码.
TypeScript文件(.ts)
这是您在编写TypeScript时使用的标准文件扩展名.它将被编译为JavaScript.
Dan*_*ker 24
*.d.ts文件中允许的任何内容也可能出现在*.ts文件中,但不会出现相反的情况.因此*.d.ts允许TypeScript功能的子集.
只允许*.d.ts文件包含不在输出中生成任何JavaScript代码的TypeScript代码.如果您尝试使用会生成JavaScript的TypeScript的任何功能,您将收到错误.
允许接口,因为它们在编译后完全消失.
与在输出JavaScript中生成对象的普通枚举不同,也允许使用常量枚举(在1.4中添加).
顶级类,变量,模块和函数必须以前缀为前缀declare.通常你会看到一个顶层declare module,因此它里面的东西也是纯粹的声明:
declare module Something {
var x;
}
Run Code Online (Sandbox Code Playgroud)
它们不仅仅是将TypeScript接口暴露给用JavaScript编写的代码.您还可以使用它们来声明代码中广泛使用的一组公共接口,因此不需要require特定的物理模块来获得这些接口的可见性.
| 归档时间: |
|
| 查看次数: |
15009 次 |
| 最近记录: |