【问题标题】:Can't understand a ts compile error i get according to the pointed line无法理解我根据指出的行得到的 ts 编译错误
【发布时间】:2018-07-22 21:32:00
【问题描述】:

我有点沮丧,因为我找不到并解决我的问题。

我从 webpack ts 编译器收到错误 - awesome-typescript-loader。

这是我得到的错误:

ERROR in [at-loader] ./src/content.ts:12:2 
TS2554: Expected 3 arguments, but got 2.

这是我的 content.ts:

interface Window {
    InjectFeelter: IInjectFeelter
}

interface IInjectFeelter {
    PlaceApp: () => void;
}

class InjectFeelter implements IInjectFeelter {
    PlaceApp() {
        console.log('test')
    } ///// line 12
}

window.InjectFeelter = new InjectFeelter();

如果我删除 PlaceApp 方法,错误就会消失,这与方法有关,而不是其中的内容。

这里有什么问题?

【问题讨论】:

  • 一、二、三、四……等等,我已经数过那行了吗?爆破。好的。一、二、三、四、五、六、七……哦,该死的!又失去了我的位置。正确的。一,二……(例如:扔给我们一根骨头并指向第 12 行。)
  • 如果第 12 行是我认为的行,我不明白为什么它会期待三个参数。我会检查项目配置。
  • 相信编译器——通常他们不会撒谎——当他们说“预期有 3 个参数,但得到了 2 个”时——你不传递 arg 是在做空
  • 你应该明确地使用一个很酷的 IDE,例如atom.io 及其 tslint 插件可在内联显示此类错误并在编码时解决它们。这就是 typescript 优于 js 的真正好处。
  • @T.J. Crowder - 感谢您的评论,我标记了这条线

标签: javascript typescript webpack


【解决方案1】:

我找到了答案,问题是我的 webpack 配置文件中的规则顺序

rules: [
    {
        test: /\.tsx?$/, // files ending with .ts
        loader: 'awesome-typescript-loader'
    },
    {
        test: /\.jsx?|\.tsx?/, // files ending with .jsx
        exclude: /(node_modules|bower_components)/,
        loader: 'babel-loader',
        query: {
            presets: ['es2015', 'react']
        }
    }
]

我刚刚切换了他们的顺序,它解决了错误。

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多