У меня есть Angular библиотека, содержащая такие функции, как «export function myFunction».
Проект с ошибкой имеет эту библиотеку в качестве зависимости, и когда я хочу следить за функцией, появляется следующая ошибка:
myFunction is not declared writable or has no setter
Теперь пример из реального мира :
Простая функция из библиотеки:
export function isNotEmptyString(value: any): value is string {
return _.isString(value) && !_.isEmpty(value);
}
Точки этой функции после упаковки:
export declare function isNotEmptyString(value: any): value is string;
Чтобы шпионить за функцией, в какой-то момент у меня должен быть объект.
Поэтому я использую импорт собственного модуля для достижения этой цели.
Шпион при ошибке:
import * as MyLibfrom 'my-lib';
const isNotEmptyStringSpy = spyOn(MyLib, 'isNotEmptyString').and.returnValue(false);
И ошибка:
isNotEmptyString is not declared writable or has no setter
Сейчас , если я использую spyOnPropety
:
import * as MyLibfrom 'my-lib';
const isNotEmptyStringSpy = spyOnProperty(MyLib, 'isNotEmptyString').and.returnValue(() => false);
И новая ошибка:
isNotEmptyString is not declared configurable
Я также пытался использовать дифференцирующий модуль внутри tsconfig.json
опции компилятора.
Как и commonjs
, CommonJS
, ES2015
и ESNext
.
Разницы нет.
tsconfig. json
"compilerOptions": {
"module": "commonjs"
}
У кого-нибудь есть предложения Ion?
Я застрял с этим: /
Спасибо!
Окружающая среда:
"karma": "4.4.1"
"jasmine-core": "3.5.0"
"@angular/core": "9.0.5"