来源信息
- 仓库
- NeuralBlitz/Agent-Gateway
- 最近来源活动
- 2026年4月9日 10:58
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 1
- 分支
- 0
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- javascript
- description
- JavaScript and TypeScript best practices and patterns
- license
- MIT
- compatibility
- opencode
- metadata
- {"audience":"developers","category":"programming"}
## What I do
- Write modern JavaScript (ES6+) with async/await
- Use TypeScript for type safety
- Handle promises and async operations properly
- Use proper error handling with try/catch
- Follow React hooks patterns
- Use destructuring and spread operators
- Avoid var, use const and let
- Use strict equality (===) always
## When to use me
When writing JavaScript or TypeScript code, especially React components.
## Async/Await
```typescript
async function fetchUserData(userId: string): Promise<UserData> {
try {
const response = await fetch(`/api/users/${userId}`);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
} catch (error) {
console.error('Failed to fetch user:', error);
throw error;
}
}
// Parallel execution
async function fetchMultiple(ids: string[]): Promise<UserData[]> {
return Promise.all(ids.map(id => fetchUserData(id)));
}
```
## React Hooks
```typescript
interface UseUserOptions {
autoRefresh?: boolean;
refreshInterval?: number;
}
function useUser(userId: string | null, options: UseUserOptions = {}): {
user: UserData | null;
loading: boolean;
error: Error | null;
} {
const { autoRefresh = true, refreshInterval = 5000 } = options;
const [user, setUser] = useState<UserData | null>(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<Error | null>(null);
useEffect(() => {
if (!userId) return;
const fetchUser = async () => {
try {
setLoading(true);
const data = await fetchUserData(userId);
setUser(data);
setError(null);
} catch (err) {
setError(err instanceof Error ? err : new Error('Unknown error'));
} finally {
setLoading(false);
}
};
fetchUser();
if (autoRefresh) {
const interval = setInterval(fetchUser, refreshInterval);
return () => clearInterval(interval);
}
}, [userId, autoRefresh, refreshInterval]);
return { user, loading, error };
}
```
## TypeScript Interfaces
```typescript
interface APIResponse<T> {
data: T;
status: number;
message: string;
timestamp: string;
}
interface User {
id: string;
name: string;
email: string;
roles: ('admin' | 'user' | 'guest')[];
metadata?: {
createdAt: string;
lastLogin?: string;
};
}
```
## Best Practices
- Use arrow functions for callbacks
- Use optional chaining (?.) and nullish coalescing (??)
- Use template literals for string interpolation
- Avoid any, use unknown for truly unknown types
- Use map and filter instead of for loops
- Use Set for unique collections
- Use for...of for iteration, for...in for object keys
- Prefer composition over inheritance
在 GitHub 查看