如何将TypeScript导出声明函数转为ES6风格常量函数?
关于旧项目函数导出声明转ES6风格的解答
首先明确:不管是TypeScript的类型声明还是实际函数实现,都可以转成你说的ES6常量箭头函数风格,不过要分两种场景来看:
1. 类型声明文件(.d.ts)中的导出
你给出的例子是TypeScript的类型声明:
export declare function myFunction(myArg: CustomArgType): Promise<CustomPromiseType>
转成ES6常量风格的类型声明,写法是:
export declare const myFunction: (myArg: CustomArgType) => Promise<CustomPromiseType>
这两种写法完全等价,都是告诉TypeScript:这个导出的myFunction是一个接受CustomArgType参数、返回Promise<CustomPromiseType>的函数。
2. 实际代码文件中的函数实现
如果是带具体逻辑的函数实现,原来的写法:
export function myFunction(myArg: CustomArgType): Promise<CustomPromiseType> { // 函数逻辑 }
可以转成ES6箭头函数的常量形式:
export const myFunction = (myArg: CustomArgType): Promise<CustomPromiseType> => { // 函数逻辑 }
这种转换和function abc() {}等价于const abc = () => {}的逻辑一致,不过要注意箭头函数没有自己的this指向,如果原函数里依赖了this,需要调整上下文(比如用bind或者改用普通函数),如果没用到this,两者功能完全一致。
额外注意点
- 用
const声明的函数无法被重新赋值,比普通函数声明更安全,符合现代JS/TS的编码规范; - 在类型声明层面,两种写法没有任何区别,都是正确的类型描述。
内容的提问来源于stack exchange,提问作者physicsboy
相关产品推荐
相关产品推荐

