You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

@casl/prisma是否可使用原生JavaScript编写,还是必须使用TypeScript?

你完全可以使用普通JavaScript开发@casl/prisma相关功能,不需要强制使用TypeScript。

TypeScript支持:本包使用TypeScript编写...

这段表述仅说明包本身的开发技术栈,以及它内置了完整的类型声明供TypeScript开发者使用。所有TypeScript编写的npm包最终都会编译为标准JavaScript代码发布,原生JavaScript环境可以正常引入、调用所有功能,你提到的type AppAbility这类类型相关代码仅在TypeScript项目中需要,JS项目直接忽略相关类型定义即可正常使用。

官方示例优先采用TypeScript只是因为CASL生态的TS支持是核心特性之一,方便有类型需求的开发者参考,并不代表JS不能使用。所有@casl/prisma的功能在JS和TS环境中表现完全一致,没有任何功能限制,你可以按需选择开发语言。

以下是原生JS中使用@casl/prisma的极简示例:

const { createPrismaAbility, subject } = require('@casl/prisma');
const { AbilityBuilder } = require('@casl/ability');

const { can, build } = new AbilityBuilder(createPrismaAbility);
// 定义权限:允许读取authorId为1的Post内容
can('read', 'Post', { authorId: 1 });
const ability = build();

// 权限校验
console.log(ability.can('read', subject('Post', { authorId: 1, title: '测试文章' }))); // 输出true

内容的提问来源于stack exchange,提问作者shmuels

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:24:00