読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

vagrant の不要な仮想マシンを削除するメモ

Vagrant

忘れそうなのでメモ

この記事参照

dqn.sakusakutto.jp

消したはずの仮想マシンvagrant global-status で表示されてしまう場合、--pruneオプションをつければゴミ掃除してくれます。

$ vagrant global-status --prune

HD容量が10Gくらい空いた。助かりました。

es2015 のクラスで継承しつつ静的メソッドの中でインスタンス作成したりのメモ

Javascript

(node v4.4.7)

'use strict';

class Hoge {
  constructor() {
    this.price = 50;
  }
  static getInstance(object) {
    const instanse = new this();

    Object.keys(object).map(key => {
      instanse[key] = object[key];
    });

    return instanse;
  }
}


class Fuga extends Hoge {
  constructor() {
    super();
    this.name = 'kids';
  }

  static getInstance(object) {
    let instanse = super.getInstance(object);
    instanse.price = instanse.price * 100;
    return instanse;
  }
}


const hoge = new Hoge();
console.log(hoge);
console.log(Hoge.getInstance({price: 100}));

const fuga = new Fuga();
console.log(fuga);
console.log(Fuga.getInstance({price: 200}));

//=> Hoge { price: 50 }
//=> Hoge { price: 100 }
//=> Fuga { price: 50, name: 'kids' }
//=> Fuga { price: 20000, name: 'kids' }

参考

ESLint v3.x で React 使う場合の設定メモ

Javascript
  • 2016-08-04 Thu: 追記・修正

(eslint v3.1.1)

Install

$ node install -g eslint eslint-plugin-react 

.eslintrc

{
  "plugins": ["react"],
  "extends": ["eslint:recommended", "plugin:react/recommended"],
  "env": {
    "es6": true,
    "browser": true,
    "node": true
  },
  "rules": {
    "react/prop-types": "warn",
    "eqeqeq": ["warn", "smart"],
    "no-console": "off",
    "no-var": "error",
    "prefer-const": "error",
    "semi": ["warn", "always"]
  },
  "parserOptions": {
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  }
}

補足など

ecmaFeatures の "jsx": true すると何が変わるの?

コンポーネントのrenderのとこチェックするかどうか

class MyComponent extends React.Component {
  render() {
    retrun (
        <p> {foo}</p> // 使ってない変数。"jsx": true だとエラーになる
    )
  }
}

変数巻き上げ対応

babel通すと strict モードになって const と let は巻き上げならずにエラーになる。

    "no-var": "error",
    "prefer-const": "error",

巻き上げになる例

var hoge = "global";
 
function func() {
    console.log(hoge);  //=? undefined
    var hoge = "local";
    console.log(hoge); //=> local
}
 
func();

巻き上げならない例

"use strict"

const fuga = "global";
 
function func2() {
    console.log(fuga);  //=> エラー
    const fuga = "local";
    console.log(fuga);
}
 
func2();

es5で書くなら top-var 入れといた方がいいかも(その場合は no-var prefer-const 外す)

参考