型を簡単に作成
型を作成する関数を作成してTypeScriptのinterfaceを作成しやすくした。
型はnumber, stringなどのよく使われているもの以外の型(Dateなど)は来ない前提で付与。
1. オブジェクトの中身を判定する型を作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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. 開発ツールのコンソール出力内容をコピー
3. interfaceにペースト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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 }; |