# Parser.TakeWhile1

Consumes one or more allowed characters and fails on an empty prefix.

## Signatures

```ts
interface TakeWhile1<Allowed extends string> extends TypeFunction<string, Result<string, string>> {
    readonly return: InputOf<this> extends infer Input extends string ? TakeWhile1Internal<Input, Allowed> : never;
}
```

## Why

Required route names cannot silently parse as empty strings.

## Ownership and lifetime

TypeScript instantiates `TakeWhile1` while parsing a string-literal input; partial results and unconsumed text exist only in the resulting type.

## Property: return

Computes this type lambda's parse result for its current input.

## Property: return: Why

The local type-function protocol evaluates each parser combinator through this member without a parallel runtime object.

## Property: return: Ownership and lifetime

TypeScript evaluates `TakeWhile1.return` when the surrounding parser is applied; the associated result is erased and retains no input at runtime.
