早上好,
我正在开发一个基于Angular 1.5的网站,该网站已经大量国际化,我正在尝试整合MomentJS,因此我们的日期也可以国际化。
我们的许多代码都在TypeScript中,而且我很难让Moment的东西在TypeScript中运行。
Moment目前为2.15.2,根目录文件夹中有一个moment.d.ts文件,但由于我正在国际化,我需要使用min / moment-with-locales.js文件,并且没有TypeScript定义文件。
如果我继续使用
/// <reference path="../../bower_components/moment/moment.d.ts" />
它不起作用,因为这是一个不同的时刻实例,而不是我正在使用的locales.js。
这也不起作用:
import moment = require("../../bower_components/moment/min/moment-with-locales");
然后我接受了moment.d.ts文件,将其复制到min /文件夹中并将其重命名为moment-with-locales.d.ts,并在我的TypeScript文件中使用它,它似乎正在工作,但我对此感到不安。
那么我如何在TypeScript文件中使用moment-with-locales.js文件呢?
我只是做错了什么,或者使用TypeScript中的普通JavaScript通常很难?
答案 0 :(得分:0)
基本上,在Typescript中,定义文件(*.d.ts
)仅用于编译时,其主要目的是确保您的代码符合这些文件中指定的内容。
定义文件在运行时根本不会干扰它们的JS对应物,只要你的代码通过编译阶段,它就应该像编写JS文件那样行为。
如果您没有定义文件,作为快速入侵,您可以简单地声明一些var或函数(请注意,这不是一个好的做法,但是,绝望的时候需要绝望的措施)。< / p>
例如,假设您有一个声明名为MySuperComplexJSLibrary
的var的库,在Typescript中,您可以声明/导出类型为any
的var。这将允许使用这个惊人的库的每个属性和方法,没有编译问题。