Back to skills
SKILL.md
Fp Option Ref
ASecurityQuick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks.
- 126 stars
- 0 votes
- 0 copies
- 1 view
- Added June 4, 2026
Security analysis
100/100npx -y skills add henryalouf/ruflow --skill fp-option-ref --agent claude-codeAre you the author of Fp Option Ref?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/henryalouf-fp-option-ref)---
name: fp-option-ref
description: Quick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks.
risk: unknown
source: community
version: 1.0.0
tags: [fp-ts, option, nullable, maybe, quick-reference]
---
# Option Quick Reference
Option = value that might not exist. `Some(value)` or `None`.
## Create
```typescript
import * as O from 'fp-ts/Option'
O.some(5) // Some(5)
O.none // None
O.fromNullable(x) // null/undefined → None, else Some(x)
O.fromPredicate(x > 0)(x) // false → None, true → Some(x)
```
## Transform
```typescript
O.map(fn) // Transform inner value
O.flatMap(fn) // Chain Options (fn returns Option)
O.filter(predicate) // None if predicate false
```
## Extract
```typescript
O.getOrElse(() => default) // Get value or default
O.toNullable(opt) // Back to T | null
O.toUndefined(opt) // Back to T | undefined
O.match(onNone, onSome) // Pattern match
```
## Common Patterns
```typescript
import { pipe } from 'fp-ts/function'
import * as O from 'fp-ts/Option'
// Safe property access
pipe(
O.fromNullable(user),
O.map(u => u.profile),
O.flatMap(p => O.fromNullable(p.avatar)),
O.getOrElse(() => '/default-avatar.png')
)
// Array first element
import * as A from 'fp-ts/Array'
pipe(
users,
A.head, // Option<User>
O.map(u => u.name),
O.getOrElse(() => 'No users')
)
```
## vs Nullable
```typescript
// ❌ Nullable - easy to forget checks
const name = user?.profile?.name ?? 'Guest'
// ✅ Option - explicit, composable
pipe(
O.fromNullable(user),
O.flatMap(u => O.fromNullable(u.profile)),
O.map(p => p.name),
O.getOrElse(() => 'Guest')
)
```
Use Option when you need to **chain** operations on optional values.
Attribution
Comments
Loading comments…