摘要:當(dāng)中有許多很有用的魔術(shù)變量比如之類但是中并沒(méi)有因此我寫了一個(gè)插件來(lái)使用它們?cè)创a已經(jīng)放到了上使用方法首先你需要安裝這個(gè)包修改一下你的在代碼中使用魔術(shù)變量比如用來(lái)編譯你的項(xiàng)目注意這里不能用因?yàn)闆](méi)有開放接口需要全局安裝一
PHP 當(dāng)中有許多很有用的魔術(shù)變量, 比如__CLASS__, __METHOD__之類. 但是typescript中并沒(méi)有. 因此我寫了一個(gè)插件typescript-magic-variable-plugin來(lái)使用它們, 源代碼已經(jīng)放到了GitHub上: https://github.com/acrazing/t....
使用方法首先你需要安裝這個(gè)包: 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" ] }
在代碼中使用魔術(shù)變量, 比如:
export class Foo { constructor() { console.log(__CLASS__) } }
用ttypescript來(lái)編譯你的項(xiàng)目, 注意這里不能用typescript, 因?yàn)闆](méi)有開放transform接口, 需要全局安裝一下ttypescript: npm i -g ttypescript, 然后調(diào)用ttsc來(lái)編譯.
進(jìn)階
也可以在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 |
可以自動(dòng)給React的組件添加displayName屬性, 默認(rèn)開啟, 比如:
export class Foo extends Component {}
會(huì)自動(dòng)給Foo增加靜態(tài)屬性: Foo.displayName = "Foo"
配置:
interface Options { addDisplayName: boolean; // 是否給react組件添加displayName屬性, 默認(rèn)開啟 rootDir: string; // __DIR__的相對(duì)路徑, 默認(rèn)為tscofnig.json中的rootDir或者當(dāng)前文件夾 }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/108465.html
摘要:注意和是不同的變量,處理它們的方式不同變量說(shuō)明默認(rèn)情況下包含了,和的數(shù)組。包含相同的信息,但它不是一個(gè)超全局變量。這些特殊的常量不區(qū)分大小寫,如下幾個(gè)的魔術(shù)常量名稱說(shuō)明文件中的當(dāng)前行號(hào)。 整理了下關(guān)于php的基礎(chǔ)知識(shí),參考了些資料,如下: 超全局變量 超全局變量 — 超全局變量是在全部作用域中始終可用的內(nèi)置變量: $GLOBALS $GLOBALS — 引用全局作用域中可用的全部變量 ...
摘要:類與對(duì)象基本概念如果在之后跟著的是一個(gè)包含有類名的字符串,則該類的一個(gè)實(shí)例被創(chuàng)建。如果該類屬于一個(gè)名字空間,則必須使用其完整名稱。如果一個(gè)類被聲明為,則不能被繼承。命名空間通過(guò)關(guān)鍵字來(lái)聲明。 類與對(duì)象 基本概念 new:如果在 new 之后跟著的是一個(gè)包含有類名的字符串,則該類的一個(gè)實(shí)例被創(chuàng)建。如果該類屬于一個(gè)名字空間,則必須使用其完整名稱。 Example #3 創(chuàng)建一個(gè)實(shí)例 ...
摘要:魔術(shù)方法構(gòu)造函數(shù)允行開發(fā)者在一個(gè)類中定義一個(gè)方法作為構(gòu)造函數(shù)。如果子類沒(méi)有定義構(gòu)造函數(shù)則會(huì)如同一個(gè)普通的類方法一樣從父類繼承假如沒(méi)有被定義為的話。和函數(shù)會(huì)檢查類中是否存在一個(gè)魔術(shù)方法。魔術(shù)常量魔法方法 PHP - 魔術(shù)常量 __LINE__ 文件中的當(dāng)前行號(hào) __FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。 __DIR__ 文件所在的目錄。如果用在...
摘要:繼上一篇面試常考內(nèi)容之面向?qū)ο蟀l(fā)表后,今天更新,需要的可以直接點(diǎn)擊文字進(jìn)行跳轉(zhuǎn)獲取。析構(gòu)函數(shù),當(dāng)對(duì)象被銷毀時(shí)調(diào)用。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優(yōu)質(zhì)的PHP面試內(nèi)容。繼上一篇PHP面試常考內(nèi)容之面向?qū)ο螅?)發(fā)表后,今天更新(2),需要(1)的可以直接點(diǎn)擊文字進(jìn)行跳轉(zhuǎn)獲取。整個(gè)面向?qū)ο笪恼碌慕Y(jié)構(gòu)涉及的內(nèi)容模塊有: 一、面向?qū)ο笈c面向過(guò)程有什么區(qū)別?二、面向?qū)?..
摘要:特殊在,方法被對(duì)象調(diào)用執(zhí)行時(shí),會(huì)自動(dòng)確定是那個(gè)對(duì)象調(diào)用的該方法,會(huì)使用該對(duì)象為方法內(nèi)的賦值構(gòu)造析構(gòu)類,沒(méi)有作用域,作用域,只是講,函數(shù)內(nèi)和函數(shù)外。析構(gòu)在對(duì)象消失對(duì)象被銷毀時(shí),也會(huì)自動(dòng)執(zhí)行一個(gè)方法,稱之為析構(gòu)方法。 相關(guān)定義 對(duì)象(object):現(xiàn)實(shí)生活中的實(shí)體,在編程語(yǔ)言中的體現(xiàn)。實(shí)體都有屬性和功能。一組數(shù)據(jù),和操作管理這些數(shù)據(jù)的操作,定義在一起就形成了一個(gè)實(shí)體,稱之為對(duì)象。(屬性和...
閱讀 3267·2021-11-24 09:38
閱讀 2148·2021-11-23 09:51
閱讀 1738·2021-10-13 09:39
閱讀 2610·2021-09-23 11:53
閱讀 1394·2021-09-02 15:40
閱讀 3648·2019-08-30 15:54
閱讀 1121·2019-08-30 13:04
閱讀 2552·2019-08-30 11:01