:未声明为可写或没有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:设置控制台时出现只读错误,即使它设置为可写全局
错误:可写原子属性无法将合成的 setter/getter 与用户定义的 setter/getter 配对