web-dev-qa-db-ja.com

TypeScript 2.0 / 3.0でカスタム「タイピング」を追加する方法

this によると、TypeScript 2.0の記事タイピングシステムが変更されたため、カスタムタイピングを現在添付する方法は明確ではありません。そのために常にNPMパッケージを作成する必要がありますか?

前もって感謝します!

44
Lu4

プロジェクト専用のローカルカスタム型を作成し、JSライブラリの型を宣言できます。そのためには、次のことが必要です。

  1. ディレクトリ構造を作成して、タイプ宣言ファイルを保持し、ディレクトリ構造が次のようになるようにします。

    .
    ├── custom_typings
    │   └── some-js-lib
    │       └── index.d.ts
    └── tsconfig.json
    
  2. index.d.tsファイルで、JSライブラリの宣言を追加します。

    declare module 'some-js-lib' {
      export function hello(world: string): void
    }
    
  3. tsconfig.jsoncompilerOptionsセクションにこの型宣言への参照を追加します。

    {
      "compilerOptions": {
        ...
        "typeRoots": ["node_modules/@types", "custom_typings"]
      },
      ...
    }
    
  4. コードで宣言されたモジュールを使用します。

    import { hello } from 'some-js-lib'
    
    hello('world!')
    
66
MisterMetaphor

Node_modulesの下に外部jsパッケージがインストールされていると仮定すると、2つのオプションがあると思います。

  • typeScript パッケージ内の宣言ファイルを提供し、それに参照を追加します。

    // node_modules/secret-package/index.d.ts
    export interface SecretInterface {
      // ¯\_(ツ)_/¯
    }
    

    そして、package.jsonのタイピングファイルを参照します。

    // node_modules/secret-package/package.json
    {
       ..., 
       "typings": "./index.d.ts",
       ...,
    }
    
  • モジュールの拡張プロジェクトの宣言ファイル内

    // index.d.ts
    declare module 'secret-package' {
      interface SecretInterface {
        // ¯\_(ツ)_/¯
      }
    }
    
2
Pelle Jacobs