1

我目前有一个文件main.ts,其代码如下:

import Game from './game';

declare global {
    interface Window {
        game: Game;
        throttleScreenResizeRender: number;
        resizeTimeout: number;
    }
}

 ...

window.throttleScreenResizeRender = 0;

这工作正常,但我试图在一个单独的文件中获取 Window 类型以避免代码重复。我目前的尝试如下所示:

// window.d.ts

import Game from './game';

declare global {
    interface Window {
        game: Game;
        throttleScreenResizeRender: number;
        resizeTimeout: number;
    }
}

和:

// main.ts

import Game from './game';
import 'interfaces/window';

window.throttleScreenResizeRender = 0;

这给了我一个Error TS2339: Property 'throttleScreenResizeRender' does not exist on type 'Window'.关于编译的信息。

我正在使用 Typescript 2.0.3 版

我怎样才能做到这一点?

编辑

如手册所示,我正在将 Browserify 与 tsify 一起使用。这是我的 gulp 文件:

const gulp = require("gulp");
const browserify = require("browserify");
const source = require('vinyl-source-stream');
const tsify = require("tsify");

...

gulp.task('tsify', function () {
    return browserify({
        basedir: '.',
        debug: true,
        entries: ['src/main.ts'],
        cache: {},
        packageCache: {}
    })
    .plugin(tsify)
    .bundle()
    .pipe(source('bundle.js'))
    .pipe(gulp.dest(destinationPath));
});

相关packages.json

  "dependencies": {
    "gulp": "^3.9.1",
    "gulp-typescript": "^3.0.2",
    "typescript": "^2.0.3"
  },
  "devDependencies": {
    "browserify": "^13.1.0",
    "gulp": "^3.9.1",
    "gulp-typescript": "^3.0.2",
    "tsify": "^2.0.2",
    "typescript": "^2.0.3",
    "vinyl-source-stream": "^1.1.0"
  },
4

0 回答 0