摘要:当中有许多很有用的魔术变量比如之类但是中并没有因此我写了一个插件来使用它们源代码已经放到了上使用方法首先你需要安装这个包修改一下你的在代码中使用魔术变量比如用来编译你的项目注意这里不能用因为没有开放接口需要全局安装一
PHP 当中有许多很有用的魔术变量, 比如__CLASS__, __METHOD__之类. 但是typescript中并没有. 因此我写了一个插件typescript-magic-variable-plugin来使用它们, 源代码已经放到了GitHub上: https://github.com/acrazing/t....
使用方法首先你需要安装这个包: npm install -D typescript-magic-variable-plugin
修改一下你的tsconfig:
{ "compilerOptions": { "plugins": [ { "transform": "typescript-magic-variable-plugin" } ] }, "include": [ // ... "./node_modules/typescript/magic-variable-plugin/types/globals.d.ts" ] }
在代码中使用魔术变量, 比如:
export class Foo { constructor() { console.log(__CLASS__) } }
用ttypescript来编译你的项目, 注意这里不能用typescript, 因为没有开放transform接口, 需要全局安装一下ttypescript: npm i -g ttypescript, 然后调用ttsc来编译.
进阶
也可以在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, {}) ] }) } } ]
目前支持的变量:
name | type | description |
---|---|---|
__NAMESPACE__ | string | the full name of the current namespace, use . to join the parents |
__CLASS__ | string | the class name of the declaring class |
__METHOD__ | string | the method name of the declaring method |
__FUNCTION__ | string | the function name of the declaring function |
__DIR__ | string | the current directory of the code |
__FILE__ | string | the current file full name of the code |
__LINE__ | number | the current line number |
可以自动给React的组件添加displayName属性, 默认开启, 比如:
export class Foo extends Component {}
会自动给Foo增加静态属性: Foo.displayName = "Foo"
配置:
interface Options { addDisplayName: boolean; // 是否给react组件添加displayName属性, 默认开启 rootDir: string; // __DIR__的相对路径, 默认为tscofnig.json中的rootDir或者当前文件夹 }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/108465.html
摘要:注意和是不同的变量,处理它们的方式不同变量说明默认情况下包含了,和的数组。包含相同的信息,但它不是一个超全局变量。这些特殊的常量不区分大小写,如下几个的魔术常量名称说明文件中的当前行号。 整理了下关于php的基础知识,参考了些资料,如下: 超全局变量 超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量: $GLOBALS $GLOBALS — 引用全局作用域中可用的全部变量 ...
摘要:类与对象基本概念如果在之后跟着的是一个包含有类名的字符串,则该类的一个实例被创建。如果该类属于一个名字空间,则必须使用其完整名称。如果一个类被声明为,则不能被继承。命名空间通过关键字来声明。 类与对象 基本概念 new:如果在 new 之后跟着的是一个包含有类名的字符串,则该类的一个实例被创建。如果该类属于一个名字空间,则必须使用其完整名称。 Example #3 创建一个实例 ...
摘要:魔术方法构造函数允行开发者在一个类中定义一个方法作为构造函数。如果子类没有定义构造函数则会如同一个普通的类方法一样从父类继承假如没有被定义为的话。和函数会检查类中是否存在一个魔术方法。魔术常量魔法方法 PHP - 魔术常量 __LINE__ 文件中的当前行号 __FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 __DIR__ 文件所在的目录。如果用在...
摘要:继上一篇面试常考内容之面向对象发表后,今天更新,需要的可以直接点击文字进行跳转获取。析构函数,当对象被销毁时调用。 PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。继上一篇PHP面试常考内容之面向对象(1)发表后,今天更新(2),需要(1)的可以直接点击文字进行跳转获取。整个面向对象文章的结构涉及的内容模块有: 一、面向对象与面向过程有什么区别?二、面向对...
阅读 3266·2021-11-24 09:38
阅读 2147·2021-11-23 09:51
阅读 1737·2021-10-13 09:39
阅读 2609·2021-09-23 11:53
阅读 1393·2021-09-02 15:40
阅读 3647·2019-08-30 15:54
阅读 1121·2019-08-30 13:04
阅读 2551·2019-08-30 11:01