:未声明为可写或没有setter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:未声明为可写或没有setter相关的知识,希望对你有一定的参考价值。

我正在尝试用茉莉花和角来监视导出的功能。我正在使用以下模式将功能导入到我的测试文件中:import * as HelperObject from '../file-parse'具有要监视的对象,然后指定其导出的功能来创建监视。所以,我有

file-to-test.spec.ts

import * as ParseHelper from './file-parser';

describe('ParserWorker', () => {
    it('should do something', () => {
       const mockResponse: CustomType = new CustomType()
       const spy = spyOn(ParseHelper, 'parser').and.returnValue(mockResponse)
    })
})

file-parser.ts文件中,我具有此导出的功能

export function parser(fl: File, hd: boolean = false): CustomType{
    ... do something

    return CustomTypeObject;
}

[当我运行此测试时,业力向我显示此错误:

Error: <spyOn> : parser is not declared writable or has no setter

我用这种方法毫无疑问地监视了单个导出的函数,请注意,这些函数不是任何有角度的组件或服务,它只是一个类帮助程序,具有一些需要传递给Web Worker的功能。

答案

this site,如果您的文件解析器是单个函数,则可以这样做。

添加默认声明

export function parser(fl: File, hd: boolean = false): CustomType{
    ... do something

    return CustomTypeObject;
}

export default parser

和spyOn将'解析器'更改为'默认']

import * as ParseHelper from './file-parser';

describe('ParserWorker', () => {
    it('should do something', () => {
       const mockResponse: CustomType = new CustomType()
       const spy = spyOn(ParseHelper, 'default').and.returnValue(mockResponse)
    })
})

以上是关于:未声明为可写或没有setter的主要内容,如果未能解决你的问题,请参考以下文章

JSLint:设置控制台时出现只读错误,即使它设置为可写全局

js - Object常用属性

Kubernetes - 将只读共享挂载为可写

错误:可写原子属性无法将合成的 setter/getter 与用户定义的 setter/getter 配对

@property和@x.setter和@x.deleter表示可读可写可删除

adb(11)-重新挂载 system 分区为可写