README.md in rbs2ts-1.0.0.pre.alpha.3 vs README.md in rbs2ts-1.0.0.pre.alpha.4
- old
+ new
@@ -1,9 +1,7 @@
# Rbs2ts
-[![mugi_uno](https://circleci.com/<VCS>/<ORG_NAME>/<PROJECT_NAME>.svg?style=svg)](LINK)
-
Convert RBS to TypeScript type definition.
## Installation
```ruby
@@ -14,18 +12,138 @@
```
rbs2ts convert type.rbs
```
+## Example
+
+from RBS
+
+```
+type TypeofInteger = Integer
+type TypeofFloat = Float
+type TypeofNumeric = Numeric
+type TypeofString = String
+type TypeofBool = Bool
+type TypeofVoid = void
+type TypeofUntyped = untyped
+type TypeofNil = nil
+
+type IntegerLiteral = 123
+type StringLiteral = 'abc'
+type TrueLiteral = true
+type FalseLiteral = false
+
+type UnionType = String & Integer & Bool
+type IntersectionType = String | Integer | Bool
+
+type ArrayType = Array[String]
+
+type TupleType = [ ]
+type TupleEmptyType = [String, Integer]
+
+type OptionalType = String?
+
+type RecordType = {
+ s: String,
+ next: {
+ i: Integer,
+ f: Float
+ }?
+}
+
+class Klass
+ attr_accessor a: String
+ attr_reader b: Integer
+ attr_writer c: Bool
+
+ attr_reader r: {
+ d: String,
+ e: {
+ f: String,
+ g: String?
+ }?
+ }
+
+ def to_s: () -> String
+ def tuple: () -> [{ s: String, f: Float }?]
+end
+```
+
+to TypeScript
+
+```typescript
+export type TypeofInteger = number;
+
+export type TypeofFloat = number;
+
+export type TypeofNumeric = number;
+
+export type TypeofString = string;
+
+export type TypeofBool = boolean;
+
+export type TypeofVoid = void;
+
+export type TypeofUntyped = any;
+
+export type TypeofNil = null;
+
+export type IntegerLiteral = 123;
+
+export type StringLiteral = "abc";
+
+export type TrueLiteral = true;
+
+export type FalseLiteral = false;
+
+export type UnionType = string & number & boolean;
+
+export type IntersectionType = string | number | boolean;
+
+export type ArrayType = string[];
+
+export type TupleType = [];
+
+export type TupleEmptyType = [string, number];
+
+export type OptionalType = string | null | undefined;
+
+export type RecordType = {
+ s: string;
+ next: {
+ i: number;
+ f: number;
+ } | null | undefined;
+};
+
+export namespace Klass {
+ export type a = string;
+ export type b = number;
+ export type r = {
+ d: string;
+ e: {
+ f: string;
+ g: string | null | undefined;
+ } | null | undefined;
+ };
+ export type toSReturnType = string;
+ export type tupleReturnType = [({
+ s: string;
+ f: number;
+ } | null | undefined)];
+};
+```
+
---
## ToDo
- [x] Literal type
- [ ] Interface type
-- [ ] Literal type
-- [ ] Tuple Type
-- [ ] Base Types
-- [ ] Method Type (Argument Types and Return Types)
-- [ ] Class declaration
+- [x] Literal type
+- [x] Tuple Type
+- [x] Base Types
+- [x] Method Type (Argument Types and Return Types)
+- [x] Class declaration
- [ ] Module declaration
- [ ] Interface declaration