2016-11-02 6 views
0

おはよう、モーメント-と、ロケールと活字体

私は頻繁に国際化されアンギュラ1.5ベースのサイト上で働いている、と私は日付が同様に国際化できるようにMomentJSを統合しようとしています。

私たちのコードの大部分はTypeScriptにあり、私はMomentのものをTypeScriptで動作させるのに苦労しています。

モーメントは現在2.15.2です。ルートモーメントフォルダにmoment.d.tsファイルがありますが、これを国際化しているため、min/moment-with-locales.jsファイルを使用する必要がありますそのためのタイプスクリプト定義ファイルはありません。私が先に行くと

/// <reference path="../../bower_components/moment/moment.d.ts" /> 

を使用する場合は、その瞬間-と-locales.js私が使用しているよりも一瞬の別のインスタンスだから

それは動作しません。

これはどちらか動作しません:それでは

import moment = require("../../bower_components/moment/min/moment-with-locales"); 

を私は、moment.d.tsファイルを取っ分/フォルダにコピーし、それが瞬間-で-locales.d.ts名前を変更し、それを私のTypeScriptファイルで使用したところ、それは動作しているように見えますが、それについては気にしません。

TypeScriptファイルのmoment-with-locales.jsファイルはどのように使用しますか?

私はちょうど間違っているのですか、それとも一般的に、これはTypeScript内のプレーンJavaScriptを使用して難しいですか?

答えて

0

基本的に、Typescript定義ファイル(*.d.ts)はコンパイル時にのみ使用され、主な目的はコードがそれらのファイルに指定されているものと一致するようにすることです。

定義ファイルは実行時にJSの相手に干渉しません。コードがコンパイル・パス・フェーズであれば、JSファイルとまったく同じように動作するはずです。

あなたが定義ファイルを持っていない場合は、高速のハックとして、いくつかのvarまたはfunctionを宣言するだけです(これは良い習慣ではありませんが、必死の時間は必死の対策が必要です)。

たとえば、MySuperComplexJSLibraryという名前のvarを宣言するライブラリがあるとします。Typescriptでは、var型の宣言/エクスポートが可能です。any。これは、コンパイルの問題なしに、この素​​晴らしいライブラリのすべてのプロパティとメソッドを使用することができます。