typescript typescript2.0

typescript - Cómo agregar "tipografías" personalizadas en mecanografiado 2.0



typescript2.0 (2)

Puede crear tipificaciones personalizadas locales solo para su proyecto, donde puede declarar tipos para las bibliotecas JS. Para eso, necesitas:

  1. Cree una estructura de directorios para mantener sus archivos de declaración de tipos para que su estructura de directorios se vea similar a esto:

    . ├── custom_typings │   └── some-js-lib │   └── index.d.ts └── tsconfig.json

  2. En el archivo index.d.ts , agregue una declaración para su biblioteca JS:

    declare module ''some-js-lib'' { export function hello(world: string): void }

  3. Agregue una referencia a esta declaración de tipo en la sección compilerOptions de su tsconfig.json :

    { "compilerOptions": { ... "typeRoots": ["node_modules/@types", "custom_typings"] }, ... }

  4. Usa el módulo declarado en tu código:

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

De acuerdo con this artículo, el sistema de mecanografía para mecanografiado 2.0 ha cambiado, por lo que no está claro cómo adjuntar tipografías personalizadas ahora. ¿Debo siempre crear un paquete NPM para eso?

¡Gracias de antemano!


Suponiendo que tiene su paquete js externo instalado en node_modules, creo que hay dos opciones:

  • proporcione un archivo de declaración mecanografiada en el paquete , y agregue una referencia a él:

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

    Y haga referencia al archivo de mecanografía en package.json:

    // node_modules/secret-package/package.json { ..., "typings": "./index.d.ts", ..., }

  • Aumenta el módulo en un archivo de declaración de tu proyecto.

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