> For the complete documentation index, see [llms.txt](https://docs.aitheon.com/creators-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aitheon.com/creators-studio/new-component-creation-tutorial/additional-ts.md).

# Additional TS

When creating a new UI component with a template you should use Vue.js. The component UI logics is described in .vue file in the component folder (i.e. **src/components/example-button/UI/ExampleButton.vue** in the template) and for convenience sake, there are modules that you just import in the .vue code.

These modules are in TypeScript. Learn [**How to make a Vue.js app in TypeScript**](https://blog.logrocket.com/how-to-write-a-vue-js-app-completely-in-typescript/).

If you are not  TypeScript, please, explore the modules files below.&#x20;

## shared

### decorators

**parse-json-prop.ts**

### enums

Enums [**allow you to define a set of named**](https://www.typescriptlang.org/docs/handbook/enums.html) constants.

**message-type.enum.ts**&#x20;

### helpers

**json-prop.ts -** an object for the input string.&#x20;

**parse-json.ts** - a function that converts a JSON object to JS object.

**parse-prop.ts**

### models

**message-model.ts** - f

**widget-config.model.ts** - file

**widget-event.model.ts** - file

## typings

**\_tsyb.d.ts** -&#x20;

**vue-class-component.ts** - file

**vue-property-decorator.ts** - file
