Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/juanluispaz/ts-extended-types
Set of complementary basic types related to the ones provided by TypeScript to make your application even more type-safe
https://github.com/juanluispaz/ts-extended-types
Last synced: 29 days ago
JSON representation
Set of complementary basic types related to the ones provided by TypeScript to make your application even more type-safe
- Host: GitHub
- URL: https://github.com/juanluispaz/ts-extended-types
- Owner: juanluispaz
- License: mit
- Created: 2019-08-14T15:14:20.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-03T22:27:29.000Z (about 3 years ago)
- Last Synced: 2024-11-07T00:53:41.241Z (3 months ago)
- Language: TypeScript
- Size: 6.84 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ts-extended-types
[![npm](https://img.shields.io/npm/v/ts-extended-types.svg)](http://npm.im/ts-extended-types)
[![minified size](https://badgen.net/bundlephobia/min/ts-extended-types)](https://bundlephobia.com/result?p=ts-extended-types)
[![minified & gziped size](https://badgen.net/bundlephobia/minzip/ts-extended-types)](https://bundlephobia.com/result?p=ts-extended-types)Set of complementary basic types related to the ones provided by TypeScript to make your application even more type-safe
## Install
Install with [npm](https://www.npmjs.com/):
```sh
$ npm install --save ts-extended-types
```## Basic usage
```ts
import {int, stringInt, double, stringDouble, LocalDate, LocalTime, LocalDateTime, uuid } from 'ts-extended-types';var intNumber: int;
var veryBigInt: stringInt
var doubleNumber: double;
var veryBigDoubleNumber: stringDouble
var localDate: LocalDate;
var localTime: LocalTime;
var localDateTime: LocalDateTime;
var uuidString: uuid;
```## Type definitions
- **`int`**: type that represents a integer number. It can be assigned to a number, but it cannot be assigned from a number.
- **`stringInt`**: type that represents a integer number. It can be assigned to a number, but it cannot be assigned from a number: it can be so long that can be represented using a string instead of a number.
- **`double`**: type that represents a floating point number with double precision. It can be assigned to a number, but it cannot be assigned from a number.
- **`stringDouble`**: type that represents a floating point number with double precision; it can be so long that can be represented using a string instead of a number.
- **`LocalDate`**: type that represents a local date without time (without timezone). **Provided methods**:
- **`getFullYear(): int`**: Gets the year
- **`getMonth(): int`**: Gets the month (value between 0 to 11)
- **`getDate(): int`**: Gets the day-of-the-month
- **`getDay(): int`**: Gets the day of the week (0 represents Sunday)
- **`LocalTime`**: type that represents a local time without date (without timezone). **Provided methods**:
- **`getHours(): int`**: Gets the hours
- **`getMinutes(): int`**: Gets the minutes
- **`getSeconds(): int`**: Gets the seconds
- **`getMilliseconds(): int`**: Gets the milliseconds
- **`LocalDateTime`**: type that represents a local date with time (without timezone). **Provided methods**: all methods provided by `LocalDate` and `LocalTime` plus:
- **`getTime(): int`**: Gets the time value in milliseconds
- **`uuid`**: type that represents an uuid string. It can be assigned to a string, but it cannot be assigned from a string.**Note**:
- In JavaScript `int` or `double` don't exists, all of these values are represented using a `number`.
- In JavaScript `stringInt` or `stringDouble` don't exists, all of these values are represented using a `number` or a `string`.
- In JavaScript `LocalDate`, `LocalTime` or `LocalDateTime` don't exists, all of these values are represented using the `Date` object.
- In JavaScript `uuid` don't exists, this value is represented using a `string`.## Provided functions
### Provided int functions
- **`isInt(value: any) => value is int`**: Returns `true` if the value is a `int` number, otherwise returns `false`.
- **`asInt(value: number) => int`**: Cast the number provided by argument as `int`, throws an error if the provided number is not an integer.
- **`roundToInt(value: number) => int`**: Round the provided number to an integer and then cast it to `int`.
- **`truncateToInt(value: number) => int`**: Truncate the provided number to an integer and then cast it to `int`.
- **`floorToInt(value: number) => int`**: Floor the provided number to an integer and then cast it to `int`.
- **`ceilToInt(value: number) => int`**: Ceil the provided number to an integer and then cast it to `int`.### Provided stringInt functions
- **`isStringInt(value: any) => value is stringInt`**: Returns `true` if the value is a `stringInt` number, otherwise returns `false`.
- **`asStringInt(value: number|string) => stringInt`**: Cast the number provided by argument as `stringInt`, throws an error if the provided number is not an integer.
- **`roundToStringInt(value: number) => stringInt`**: Round the provided number to an integer and then cast it to `stringInt`.
- **`truncateToStringInt(value: number) => stringInt`**: Truncate the provided number to an integer and then cast it to `stringInt`.
- **`floorToStringInt(value: number) => stringInt`**: Floor the provided number to an integer and then cast it to `stringInt`.
- **`ceilToStringInt(value: number) => stringInt`**: Ceil the provided number to an integer and then cast it to `stringInt`.### Provided double functions
- **`isDouble(value: any) => value is double`**: Returns `true` if the value is a `double` precision number, otherwise returns `false`.
- **`asDouble(value: number) => double`**: Cast the number provided by argument as `double`.### Provided stringDouble functions
- **`isStringDouble(value: any) => value is stringDouble`**: Returns `true` if the value is a `stringDouble` precision number, otherwise returns `false`.
- **`asStringDouble(value: number|string) => double`**: Cast the number provided by argument as `stringDouble`, throws an error if the provided number is not a double.### Provided LocalDate functions
- **`createLocalDate() => LocalDate`**: create a new `LocalDate` with the current date.
- **`createLocalDate(date: Date) => LocalDate`**: create a new `LocalDate` with the same date provided by argument.
- **`createLocalDate(year: number, month: number, date: number) => LocalDate`**: create a new `LocalDate` with the year, month and date (day of the month) provided by arguments.
- **`isLocalDate(value: any) => value is LocalDate`**: Returns `true` if the value is a `LocalDate`, otherwise returns `false`### Provided LocalTime functions
- **`createLocalTime() => LocalTime`**: create a new `LocalTime` with the current time.
- **`createLocalTime(date: Date) => LocalTime`**: create a new `LocalTime` with the same time provided by argument.
- **`createLocalTime(hours: number, minutes?: number, seconds?: number, milliseconds?: number) => LocalTime`**: create a new `LocalTime` with the hours, minutes, seconds and milliseconds provided by arguments.
- **`isLocalTime(value: any) => value is LocalTime`**: Returns `true` if the value is a `LocalTime`, otherwise returns `false`### Provided LocalDateTime functions
- **`createLocalDateTime() => LocalDateTime`**: create a new `LocalDate` with the current date and time.
- **`createLocalDateTime(date: Date) => LocalDateTime`**: create a new `LocalDateTime` with the same date and time provided by argument.
- **`createLocalDateTime(year: number, month: number, date: number, hours?: number, minutes?: number, seconds?: number, milliseconds?: number) => LocalDateTime`**: create a new `LocalDateTime` with the year, month, date (day of the month), hours, minutes, seconds and milliseconds provided by arguments.
- **`isLocalDate(value: any) => value is LocalDate`**: Returns `true` if the value is a `LocalDate`, otherwise returns `false`### Provided uuid functions
- **`isUuid(value: any) => value is uuid`**: Returns `true` if the value is an `uuid` string, otherwise returns `false`.
- **`asUuid(value: string) => uuid`**: Cast the string provided by argument as `uuid`, throws an error if the provided string is not an uuid.## License
MIT