TypeScriptでオブジェクトのinterfaceの型を簡単に作成する方法

TypeScriptでオブジェクトのinterfaceの型を簡単に作成する方法

型を簡単に作成

型を作成する関数を作成してTypeScriptのinterfaceを作成しやすくした。

型はnumber, stringなどのよく使われているもの以外の型(Dateなど)は来ない前提で付与。

1. オブジェクトの中身を判定する型を作成

var obj = {
  a: 1,
  b: 'foo',
  c: true,
  d: '',
  e: [1, 2, 3],
  g: ['b', 'a', 'r'],
  h: [true, false, true],
  i: null,
  j: undefined
};
function checkType(obj) {
  var result = '';
  var type = '';
  var len = Object.keys(obj).length;;
  var i = 0;
  for (var p in obj) {
    i++;
    if(obj[p] === null || typeof(obj[p]) === 'undefined') {
      type = 'any';
    } else if(typeof(obj[p]) === 'object') {
        var flag;
        for(var j = 0, jl = obj[p].length - 1; j < jl;  j++) {
          if(typeof(obj[p][j]) !== typeof(obj[p][j+1])) {
            type = 'any';
          } else {
            type = typeof(obj[p][j]) + '[]';
          }
        }
    } else {
      type = typeof(obj[p]);
    }
    result += p + ': ' + type + ';\n';
  }
  console.log(result);
}
checkType(obj);

2. 開発ツールのコンソール出力内容をコピー

TypeScriptでオブジェクトのinterfaceの型を簡単に作成する方法

3. interfaceにペースト

interface IObj {
  a: number;
  b: string;
  c: boolean;
  d: string;
  e: number[];
  g: string[];
  h: boolean[];
  i: any;
  j: any;
}
var obj: IObj = {
  a: 1,
  b: 'foo',
  c: true,
  d: '',
  e: [1, 2, 3],
  g: ['b', 'a', 'r'],
  h: [true, false, true],
  i: null,
  j: undefined
};