# Send TypeScript to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "typescript",
    "name": "TypeScript",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/typescript",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/typescript",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/typescript",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=typescript",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "declarations.md",
      "generics.md",
      "migration.md",
      "utility-types.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "typescript",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T07:52:12.186Z",
      "expiresAt": "2026-05-17T07:52:12.186Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=typescript",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=typescript",
        "contentDisposition": "attachment; filename=\"typescript-1.0.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "typescript"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/typescript"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/typescript",
    "downloadUrl": "https://openagent3.xyz/downloads/typescript",
    "agentUrl": "https://openagent3.xyz/skills/typescript/agent",
    "manifestUrl": "https://openagent3.xyz/skills/typescript/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/typescript/agent.md"
  }
}
```
## Documentation

### When to Use

User needs TypeScript expertise — from basic typing to advanced generics. Agent handles type narrowing, inference, discriminated unions, and strict mode patterns.

### Quick Reference

TopicFileGeneric patternsgenerics.mdUtility typesutility-types.mdDeclaration filesdeclarations.mdMigration from JSmigration.md

### Stop Using any

unknown forces you to narrow before use — any silently breaks type safety
API responses: type them or use unknown, never any
When you don't know the type, that's unknown, not any

### Narrowing Failures

filter(Boolean) doesn't narrow — use .filter((x): x is T => Boolean(x))
Object.keys(obj) returns string[], not keyof typeof obj — intentional, objects can have extra keys
Array.isArray() narrows to any[] — may need assertion for element type
in operator narrows but only if property is in exactly one branch of union

### Literal Type Traps

let x = "hello" is string — use const or as const for literal type
Object properties widen: { status: "ok" } has status: string — use as const or type annotation
Function return types widen — annotate explicitly for literal returns

### Inference Limits

Callbacks lose inference in some array methods — annotate parameter when TS guesses wrong
Generic functions need usage to infer — fn<T>() can't infer, pass a value or annotate
Nested generics often fail — break into steps with explicit types

### Discriminated Unions

Add a literal type or kind field to each variant — enables exhaustive switch
Exhaustive check: default: const _never: never = x — compile error if case missed
Don't mix discriminated with optional properties — breaks narrowing

### satisfies vs Type Annotation

const x: Type = val widens to Type — loses literal info
const x = val satisfies Type keeps literal, checks compatibility — prefer for config objects

### Strict Null Handling

Optional chaining ?. returns undefined, not null — matters for APIs expecting null
?? only catches null/undefined — || catches all falsy including 0 and ""
Non-null ! should be last resort — prefer narrowing or early return

### Module Boundaries

import type for type-only imports — stripped at runtime, avoids bundler issues
Re-exporting types: export type { X } — prevents accidental runtime dependency
.d.ts augmentation: use declare module with exact module path
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ivangdavila
- Version: 1.0.2
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-10T07:52:12.186Z
- Expires at: 2026-05-17T07:52:12.186Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/typescript)
- [Send to Agent page](https://openagent3.xyz/skills/typescript/agent)
- [JSON manifest](https://openagent3.xyz/skills/typescript/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/typescript/agent.md)
- [Download page](https://openagent3.xyz/downloads/typescript)