[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Type](https://evolu.dev/docs/api-reference/common/Type) › String

```ts
const String: createTypeOfType("String");
```

Defined in: [packages/common/src/Type.ts:2880](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Type.ts#L2880)

A JavaScript string [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) without additional constraints.

Use when empty strings and surrounding whitespace are valid domain values. If
only empty strings are invalid, add an explicit [minLength](https://evolu.dev/docs/api-reference/common/Type/functions/minLength). If
surrounding whitespace is invalid, use [TrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/TrimmedString). If both are
invalid, use [NonEmptyTrimmedString](https://evolu.dev/docs/api-reference/common/Type/variables/NonEmptyTrimmedString), the recommended base for ordinary
human-entered text.

### Example

A bounded wire value for a protocol that explicitly permits an empty value
and significant whitespace:

```ts
import {
  assertOk,
  assertType,
  String,
  maxLength,
  type Brand,
} from "@evolu/common";

const WireValue100 = maxLength(100)(String);
type WireValue100 = typeof WireValue100.Output;

assertType<string & Brand<"MaxLength100">, WireValue100>();
assertOk(WireValue100.fromUnknown(""), "");
assertOk(WireValue100.fromUnknown(" value "), " value ");
```