Microsoft/TypeScript

Assignments to global objects in Javascript should be global declarations

Open

#22,446 opened on 2018年3月9日

GitHub で見る
 (3 comments) (0 reactions) (0 assignees)TypeScript (6,726 forks)batch import
BugDomain: JavaScriptEffort: ModerateExperience EnhancementHelp WantedRescheduled

Repository metrics

Stars
 (48,455 stars)
PR merge metrics
 (平均マージ 6d 17h) (30d で 9 merged PRs)

説明

// @noEmit: true
// @allowJs: true
// @checkJs: true
// @Filename: a.js
global.x = 1
window.y = 2
this.z = 3

var n = x + y + z

Expected behavior: No error, and x, y and z are visible globally.

Actual behavior: Errors:

  1. Can't find name 'global'
  2. 'Window' has no property 'y'
  3. Cannot find name 'x', 'y' or 'z'

Ideally, global should only be visible when targetting node and window should only be visible when targetting the browser. It's not a requirement, though.

コントリビューターガイド