javascript-typescript by skillcreatorai/ai-agent-skills
npx skills add https://github.com/skillcreatorai/ai-agent-skills --skill javascript-typescript{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"skipLibCheck": true,
"declaration": true,
"outDir": "./dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
// 选取特定属性
type UserPreview = Pick<User, 'id' | 'name'>;
// 省略属性
type CreateUser = Omit<User, 'id' | 'createdAt'>;
// 使所有属性变为可选
type PartialUser = Partial<User>;
// 使所有属性变为必需
type RequiredUser = Required<User>;
// 提取联合类型
type Status = 'pending' | 'active' | 'inactive';
type ActiveStatus = Extract<Status, 'active' | 'pending'>;
type Result<T> =
| { success: true; data: T }
| { success: false; error: Error };
function handleResult<T>(result: Result<T>) {
if (result.success) {
console.log(result.data); // T
} else {
console.error(result.error); // Error
}
}
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
interface HasId {
id: string | number;
}
function findById<T extends HasId>(items: T[], id: T['id']): T | undefined {
return items.find(item => item.id === id);
}
const { name, ...rest } = user;
const merged = { ...defaults, ...options };
const [first, ...others] = items;
const city = user?.address?.city ?? 'Unknown';
const count = data?.items?.length ?? 0;
const adults = users.filter(u => u.age >= 18);
const names = users.map(u => u.name);
const total = items.reduce((sum, item) => sum + item.price, 0);
const hasAdmin = users.some(u => u.role === 'admin');
const allActive = users.every(u => u.active);
// 包含子组件的属性
interface CardProps {
title: string;
children: React.ReactNode;
}
// 事件处理器
interface ButtonProps {
onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
}
// 自定义钩子
function useLocalStorage<T>(key: string, initial: T) {
const [value, setValue] = useState<T>(() => {
const stored = localStorage.getItem(key);
return stored ? JSON.parse(stored) : initial;
});
useEffect(() => {
localStorage.setItem(key, JSON.stringify(value));
}, [key, value]);
return [value, setValue] as const;
}
// ES 模块
import { readFile } from 'node:fs/promises';
import { join } from 'node:path';
// 错误处理
process.on('unhandledRejection', (reason) => {
console.error('Unhandled Rejection:', reason);
process.exit(1);
});
每周安装量
208
代码仓库
GitHub 星标数
959
首次出现
2026年1月20日
安全审计
安装于
opencode173
gemini-cli161
codex159
github-copilot147
cursor142
claude-code124
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"skipLibCheck": true,
"declaration": true,
"outDir": "./dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
// Pick specific properties
type UserPreview = Pick<User, 'id' | 'name'>;
// Omit properties
type CreateUser = Omit<User, 'id' | 'createdAt'>;
// Make all properties optional
type PartialUser = Partial<User>;
// Make all properties required
type RequiredUser = Required<User>;
// Extract union types
type Status = 'pending' | 'active' | 'inactive';
type ActiveStatus = Extract<Status, 'active' | 'pending'>;
type Result<T> =
| { success: true; data: T }
| { success: false; error: Error };
function handleResult<T>(result: Result<T>) {
if (result.success) {
console.log(result.data); // T
} else {
console.error(result.error); // Error
}
}
interface HasId {
id: string | number;
}
function findById<T extends HasId>(items: T[], id: T['id']): T | undefined {
return items.find(item => item.id === id);
}
const { name, ...rest } = user;
const merged = { ...defaults, ...options };
const [first, ...others] = items;
const city = user?.address?.city ?? 'Unknown';
const count = data?.items?.length ?? 0;
const adults = users.filter(u => u.age >= 18);
const names = users.map(u => u.name);
const total = items.reduce((sum, item) => sum + item.price, 0);
const hasAdmin = users.some(u => u.role === 'admin');
const allActive = users.every(u => u.active);
// Props with children
interface CardProps {
title: string;
children: React.ReactNode;
}
// Event handlers
interface ButtonProps {
onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
}
// Custom hooks
function useLocalStorage<T>(key: string, initial: T) {
const [value, setValue] = useState<T>(() => {
const stored = localStorage.getItem(key);
return stored ? JSON.parse(stored) : initial;
});
useEffect(() => {
localStorage.setItem(key, JSON.stringify(value));
}, [key, value]);
return [value, setValue] as const;
}
// ES Modules
import { readFile } from 'node:fs/promises';
import { join } from 'node:path';
// Error handling
process.on('unhandledRejection', (reason) => {
console.error('Unhandled Rejection:', reason);
process.exit(1);
});
Weekly Installs
208
Repository
GitHub Stars
959
First Seen
Jan 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode173
gemini-cli161
codex159
github-copilot147
cursor142
claude-code124
Node.js 环境配置指南:多环境管理、类型安全与最佳实践
10,500 周安装
Canvas Design 技能:AI驱动视觉哲学创作与画布设计工具 | 艺术生成与美学设计
1,200 周安装
agent-memory 技能 - AI 助手记忆管理工具 | 提升开发效率与代码协作
1,100 周安装
AI技能开发:session-wrap与multi-agent分析实战指南 | 技能创建与验证流程
1,100 周安装
持续代理循环 (continuous-agent-loop) - Claude AI 自动化开发工作流与代理循环管理
1,200 周安装
Flutter布局指南:构建响应式UI的约束规则与自适应设计模式
1,200 周安装
CTF Web漏洞利用速查手册 - SQL注入、SSTI、XXE、反序列化、XSS等攻防技术大全
1,200 周安装