首页 > 解决方案 > 将变量用作函数时的编译器错误

问题描述

我正在尝试编译一些 Typescript,但出现编译器错误:

TypeError: myVariable is not a function
    at Object.<anonymous> (/home/anon/Desktop/Typescript/main.js:37:1)
    at Module._compile (internal/modules/cjs/loader.js:738:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:749:10)
    at Module.load (internal/modules/cjs/loader.js:630:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:570:12)
    at Function.Module._load (internal/modules/cjs/loader.js:562:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:801:12)
    at internal/main/run_main_module.js:21:11

我确定这是因为 myVariable 确实不是函数,而是“any”类型。但是,如果我没记错的话,这种数据类型应该可以作为函数访问。

谢谢

let myVariable: any = 10;

console.log(myVariable.name);
console.log();
myVariable();

标签: typescript

解决方案


当叙述者说 TypeScript 没有抛出任何错误时(在 23:30),他不是在谈论编译错误(来自运行 tsc 程序)。他指的是 TypeScript linter,它会在你编译之前检查你的代码在你的文本编辑器中是否存在问题。您会注意到 myVariable() 行下方没有红色的“曲线”。但是,当他将类型切换为未知时,会出现曲线。那些曲线就是他所说的错误——代码永远不会被运行。


推荐阅读