javascript - 当js用Typescript调用scrollMaxY参数时我该如何处理?

标签 javascript typescript

我正在将代码从 javascript 转换为在现代浏览器上运行的 Typescript。我正在使用 VS2013 IDE,除了代码尝试引用scrollMayY 的一处之外,我没有收到任何 IDE 错误。

position.getPageSize = function () {

    var scrollWidth, scrollHeight;
    var innerWidth, innerHeight;

    // It's not very clear which blocks work with which browsers.
    if (self.innerHeight && self.scrollMaxY) {
        scrollWidth = doc.body.scrollWidth;
        scrollHeight = self.innerHeight + self.scrollMaxY;
    }
    else if (doc.body.scrollHeight > doc.body.offsetHeight) {
        scrollWidth = doc.body.scrollWidth;
        scrollHeight = doc.body.scrollHeight;
    }
    else {
        scrollWidth = doc.body.offsetWidth;
        scrollHeight = doc.body.offsetHeight;
    }

这里我收到一条错误消息:属性scrollMaxY 在类型为Window 的对象上不存在。

任何人都可以给我一些关于如何处理这个问题的建议吗?我不确定这是否是代码错误,或者我是否需要对 Typescript 做一些不同的事情来避免此检查?请注意,代码中的注释不是我写的。它是由代码的开发人员编写的。

最佳答案

您可以在window上定义scrollMaxY:

interface Window { scrollMaxY: number; }

...这将消除您的编译时错误。

或者做:

self["scrollMaxY"]

或者你可以寻找一些alternatives to window.scrollMaxY

关于javascript - 当js用Typescript调用scrollMaxY参数时我该如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27686897/

相关文章:

javascript - 并排使用 .keypress 和 .keydown

javascript - 使用react-native-router-flux,如何让选项卡栏单击指定要切换到哪个选项卡?

javascript - bodyparser 解析 gzip 和 json 这两种类型的 HTTP POST 请求主体

typescript - 如何根据数组项的某些键定义新类型?

visual-studio - 仅当先前编译的 JavaScript 文件已被删除时,TypeScript 才会编译

typescript - 如何设置 gulp-typescript 为同一目录中的每个 typescript 文件生成一个 javascript 文件?

angular - 如何在 Angular 模板中迭代联合类型数组

javascript - 如何在多个命名空间中命名函数?

javascript - 即使我返回 false,jQuery 也会在 url 的末尾附加 #;

javascript - 如何聚合 Node.js 流回调中异步函数生成的 Promise?