Typescript 如何使模块级函数不是只读的?
假设您有一个如下所示的Typescript模块:Typescript 如何使模块级函数不是只读的?,typescript,unit-testing,dependency-injection,readonly,monkeypatching,Typescript,Unit Testing,Dependency Injection,Readonly,Monkeypatching,假设您有一个如下所示的Typescript模块: // mymodule.ts export function aFunction () { console.log('Howdie Doody'); } // End of module 如果将其导入第二个模块,则无法重新分配a函数的功能。也就是说,如果我这样做: // secondModule.ts import * as firstModule from 'mymodule.ts`; firstModule.aFunctio
// mymodule.ts
export function aFunction () {
console.log('Howdie Doody');
}
// End of module
如果将其导入第二个模块,则无法重新分配a函数的功能。也就是说,如果我这样做:
// secondModule.ts
import * as firstModule from 'mymodule.ts`;
firstModule.aFunction = () => { console.log('New message!') }
// "Cannot assign to 'aFunction' because it is a read-only property.ts(2540)
如何使a函数
不为只读,以便重新分配它
我想这样做,以便轻松测试使用a函数的函数
据我所知,es6导入设计为只读,您必须使用其他模式动态更改a功能
与CommonJS不同,导入是导出值的视图。换句话说,每次导入都是与导出数据的实时连接导入是只读的:
非限定导入(从“foo”导入x)类似于const声明的变量。
模块对象foo的属性(从“foo”导入*作为foo)与冻结对象的属性类似
@戴修正了密码。删除const
并不能解决问题,尽管export-affunction()
无效-它应该是export-function-affunction(){
,export-affunction=function(){
,或者export-affunction=()=>{
@Dai已编辑。但问题仍然存在