1. ホーム
  2. node.js

[解決済み] node.jsでTypeScript Globalオブジェクトを拡張する

2023-06-15 15:20:06

質問

node.jsのアプリで、ある設定情報を global オブジェクトに設定情報を付加します。

global.myConfig = {
    a: 1,
    b: 2
}

TypeScriptコンパイラは、この Global という名前のオブジェクトがないためです。 myConfig :

TS2339: プロパティ 'myConfig' はタイプ 'Global' に存在しません。

こんなの嫌だ。

global['myConfig'] = { ... }

を拡張するにはどうすればよいのでしょうか? Global を含むように myConfig それともTypeScriptに黙って私を信じろと言うのか?私は前者を選びます。

の中の宣言を変えたくない。 node.d.ts . 私はこれを見ました SOポスト を見て、これを試してみました。

declare module NodeJS  {
    interface Global {
        myConfig: any
    }
}

を拡張する方法として、既存の Global インターフェイスを拡張する方法ですが、何の効果もないようです。

どのように解決するのですか?

このSOの投稿を見て、これを試してみました。

のようなものがあるのではないでしょうか。 vendor.d.ts :

// some import 
// AND/OR some export

declare module NodeJS  {
    interface Global {
        spotConfig: any
    }
}

あなたのファイルは クリーン ルートレベルの import または exports . そうすると、このファイルは モジュール から切り離され グローバル型宣言の名前空間 .

もっと詳しく: https://basarat.gitbooks.io/typescript/content/docs/project/modules.html