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.
Наслаждайся жизнью~