babel-plugin-flow-type-getter
v1.0.9
Published
Access flow types from uninstantiated classes.
Downloads
22
Maintainers
Readme
Access your Flow types from classes before you instantiate objects.
To use :
npm install --save-dev babel-plugin-flow-type-getter babel-plugin-transform-flow-strip-types
.babelrc
{
"plugins": ["flow-type-getter", "transform-flow-strip-types"]
}
Example
class Test1 {
prop1: number;
prop2: Array<User | string>;
prop3: Client;
prop4: boolean;
prop5: Client | User;
prop6: ?Array<number>;
prop7: Array<User>;
prop8: ?{a: string, b: ?number};
static getType() {
return 'cool';
}
getTypeTwo() {
return 'yeah';
}
}
class Test2 {
prop1: number;
prop2: Array<User | ID>;
static getType() {
return 'cool';
}
getTypeTwo() {
return 'yeah';
}
}
const obj_test = {
t1 : Test1,
t2 : Test2
}
const test1_str = 't1';
const testing_this_string = 'prop1';
console.log('unary test : ', typeof Test1[testing_this_string]); // number
console.log('binary test : ', typeof obj_test.t1.prop2 == 'User'); // true
console.log('array test : ', Array.isArray(Test1['prop5'])); // false
console.log('array test : ', Array.isArray(obj_test['t2'].prop2)) // true
console.log('undefined test : ', typeof Test1.prop9); // undefined
console.log('binary undefined test : ', typeof Test1.prop9 == 'string'); // false
console.log('array undefined test : ', Array.isArray(Test1.prop9)); // false
Run the example
-Navigate to the example
directory of the project
-Open the file index.js in a text editor (only do this if you want to expriment)
-Enter the command npm run build
to start the babel --watch process (keep this shell open)
-In a new shell, enter the command npm start
to see the values logged out in example/index.js