PHP содержит некоторые полезные магические константы, такие как __CLASS__, __METHOD__, __FUNCTION__ и т. д. Но они не поддерживаются в родном TypeScript. Теперь для этого есть плагин для TypeScript, который называется typescript-magic-variable-plugin.

Сначала вам нужно установить пакет в ваш проект TypeScript:

npm install -D typescript-magic-variable-plugin
# or var yarn
yarn add -D typescript-magic-variable-plugin

А затем обновите свой tsconfig.json, чтобы вызвать этот плагин:

{
  "compilerOptions": {
    "plugins": [
      { "transform": "typescript-magic-variable-plugin" }
    ]
  },
  "include": [
    // your files
    "./node_modules/typescript-magic-variable-plugin/types/globals.d.ts"
  ]
}

Наконец, вам нужно использовать ttypescript для компиляции кода с помощью командной строки. Или добавьте пользовательский преобразователь для awesome-typescript-loader с webpack:

const { createMagicVariableTransformer } = require('typescript-magic-variable-plugin')
// ...
rules: [
    {
        test: /\.tsx?$/,
        loader: 'awesome-typescript-loader',
        options: {
            // ... other loader's options
            getCustomTransformers: program => ({
                before: [
                   createMagicVariableTransformer(program, {})
                ]
            })
        }
    }
]

Этот пакет поддерживает следующие магические константы:

  • __КЛАСС__
  • __СПОСОБ__
  • __ФУНКЦИЯ__
  • __NAMESPACE__
  • __КАТАЛОГ__
  • __ФАЙЛ__

и можно было бы добавить displayName для реагирующих компонентов.

Более подробную информацию вы можете получить на GitHub: acrazing/typescript-magic-variable-plugin.

Наслаждайся жизнью~