我正在向this library添加访问arugments.callee
的函数。在项目的tsconfig.json
中,我设置了"strict": false
,从而使此迷你测试正常工作:
function check() {
console.log(arguments.callee.name);
}
那行得通。现在,如果我要导入库的一部分,则要像这样运行测试:
import {isNumberInRange} from './is';
function check() {
console.log(arguments.callee.name);
// isNumberInRange(1,0,1);
}
check();
即使我实际上没有运行isNumberInRange
函数打字稿,它仍然记录以下内容:
TypeError:在严格模式函数或调用它们的参数对象上,可能无法访问“ caller”,“ callee”和“ arguments”属性 在检查时(/home/ole/Github/is/src/test.ts:4:27)
要启用呼叫arguments.callee.name
,我还需要做什么?
答案 0 :(得分:1)
除了"strict": false
之外,还添加"noImplicitUseStrict": true
。
TypeScript将自己添加严格模式,需要禁用此模式。
如何执行此操作已在此处回答:prevent-use-strict-in-typescript
您可以通过使用--noImplicitUseStrict编译器选项进行编译-在tsconfig.json中的“ compilerOptions”中添加“ noImplicitUseStrict”:true。这样做将防止编译器发出“ use strict”。