我目前有一个文件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"
},