[解決済み] TypeScriptの "*.d.ts "について
質問
気になるのは
*.d.ts
というのも、私はTypeScriptの初心者なのです。そして、この種のファイルは、C++でいうところの "head file" のようなもので、JS専用のものだと、ある人から教えてもらったのです。しかし、私は純粋なJSファイルを
*.d.ts
を強制的に変更しない限り
*.js
から
*.ts
. というわけで、3つのファイルを用意しました。
JS ファイル、TS ファイル、そして
*.d.ts
ファイルを作成します。
-
両者の関係は?
-
を使用するにはどうすればよいのでしょうか?
*.d.ts
ファイルを作成できますか?を削除してもいいということでしょうか?*.ts
ファイルを永久に保存しますか? -
その場合、どのようにすれば
*.d.ts
ファイルは、どの JS ファイルが自分自身にマッピングされているかを知っていますか?
どなたか例を挙げていただけると大変助かります。
どのように解決するのですか?
"d.ts"ファイルは、JavaScriptで書かれたAPIに関するtypescriptの型情報を提供するために使用されるものです。jQueryやunderscoreのような既存のJavaScriptライブラリを使っている場合です。これらをtypescriptのコードから利用したいのです。
jqueryやunderscoreなどをtypescriptで書き直すのではなく、型アノテーションだけを含むd.tsファイルを書けばいいのです。そうすれば、typescriptのコードから、純粋なJSライブラリを使用しながらも、静的型チェックというtypescriptの利点を得ることができるのです。
これは、TypeScriptの制約で、.ts"という拡張子を
import
ステートメントを使用します。そのため、あるファイルを参照するときに、たとえば
my-module.js
がある場合は
my-module.d.ts
の隣にある場合、TypeScriptはその内容をインクルードする。
src/
my-module.js
my-module.d.ts
index.ts
<サブ my-module.js
const thing = 42;
module.exports = { thing };
<サブ my-module.d.ts
export declare const thing: number;
<サブ index.ts
import { thing } from "./my-module"; // <- no extension
// runtime implementation of `thing` is taken from ".js"
console.log(thing); // 42
// type declaration of `thing` is taken from ".d.ts"
type TypeOfThing = typeof thing; // number
関連
-
[解決済み】Typescriptで、! (エクスクラメーションマーク/バン)演算子でメンバを再参照するのは?
-
[解決済み] TypeScriptでグローバル変数を作成する
-
[解決済み] TypeScriptでオブジェクトを初期化する方法
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] TypeScript で `window` に新しいプロパティを明示的に設定するにはどうすればよいですか?
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] TypeScriptのファイルをコマンドラインから実行するには?
-
[解決済み] オプションのパラメータを省略しながら、他のオプションのパラメータを渡すには?
-
[解決済み】TypeScriptのインターフェースと型について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ブロックスコープ付き変数の再宣言ができない(typescript)
-
[解決済み] プロパティ 'values' はタイプ 'ObjectConstructor' に存在しません。
-
[解決済み] 2つのインターフェイスを統合する
-
[解決済み] TypeScriptでオブジェクトを初期化する方法
-
[解決済み] TypeScriptで文字列をenumに変換するには?
-
[解決済み] チェックした後に○○の表現が変わっている
-
[解決済み】ランタイムにオブジェクトのクラス名を取得する
-
[解決済み】TypeScriptの関数のオーバーローディング
-
[解決済み】TypeScriptとフィールドイニシャライザー
-
[解決済み】tsconfig.jsonファイルを生成するにはどうしたらいいですか?