如何在d.ts文件中定义delete等保留字作为导出函数?
解决d.ts文件中导出保留字
delete作为函数的问题 因为delete是JavaScript/TypeScript的保留字,不能直接作为函数名在声明文件中定义,以下两种方案可以解决这个问题:
方案1:用引号包裹保留字函数名
直接在declare module中将delete函数名用单引号或双引号括起来,TypeScript会识别这个保留字为合法标识符:
declare module "codehooks-js" { // ... 其他类型和函数声明保持不变 // 修改后的delete函数定义 export function "delete"(route: string, callback: Callback): void; }
也可以使用单引号,效果一致:
export function 'delete'(route: string, callback: Callback): void;
使用时,若需要导入这个函数,同样可以用引号包裹后取别名:
import { "delete" as deleteRoute } from 'codehooks-js'; // 调用示例 deleteRoute('/api/item/:id', (req, res) => { // 处理逻辑 });
方案2:通过导出别名重命名
先定义一个非保留字的函数,再通过export as将其重命名为delete:
declare module "codehooks-js" { // ... 其他类型和函数声明保持不变 // 先定义非保留字的函数 declare function del(route: string, callback: Callback): void; // 导出时重命名为delete export { del as delete }; }
这种方式在导入时同样可以直接取别名使用,避免处理保留字的语法问题。
内容的提问来源于stack exchange,提问作者stackoverfloweth
相关产品推荐
相关产品推荐

