Questions tagged «typescript»

4
TypeScript和Dart之间的区别
微软最近发布了Typescript,一种新的类似于JavaScript的编程语言。不久前,我听说过Dart,这是Google创建的一种新的编程语言,用于解决与Javascript有关的问题,例如性能,可伸缩性等。 两种新语言的目的在我看来都是相同的。 语言的目的是否相同? 它们之间的真正区别是什么?
85 dart  typescript 

5
TypeScript背后的动机是什么?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和为什么答案正确的解释。没有足够详细信息的答案可以被编辑或删除。 此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 7年前。 我们有了JavaScript,然后有了Flash,然后有了Silverlight,然后HTML5拥有了它们。 那么TypeScript背后的动机是什么?TypeScript将解决哪些问题,我们将获得哪些改进? http://www.typescriptlang.org/

3
在类构造函数中注入数据(相对于行为)意味着什么,为什么这被认为是不好的做法?
我正在阅读Remo Jansen的书“ Learning TypeScript”。在一个部分中,作者描述了如何创建一个非常简单的概念验证MVC框架,包括如何创建Model类,并说了以下几点: 需要向模型提供其使用的Web服务的URL。我们将使用一个名为ModelSettings的类装饰器来设置要使用的服务的URL。我们可以通过其构造函数注入服务URL,但通过类构造函数注入数据(与行为相反)被认为是一种不好的做法。 我不明白那句话。特别是,我不明白“注入数据”的含义。在我看来,在几乎所有使用过度简化示例的JavaScript类介绍中,数据都是通过其参数引入(“注入”?)到构造函数中的。例如: class Person { constructor(name) { this.name = name; } } 我当然想到 name是数据,而不是行为,并且在此类示例中普遍将其作为构造函数参数包含在内,并且从未有人提到这是不好的做法。因此,我认为我误解了上面引用中的某些内容,无论是“数据”还是“注入”或其他含义。 您的答案可能包括在JavaScript / TypeScript中何时,何地,如何以及为什么使用装饰器的解释,因为我强烈怀疑该概念与我寻求的理解密切相关。但是,更重要的是,我想更广泛地理解通过类构造函数注入数据的含义以及为什么这样做很糟糕。 为了使上面的引用有更多的上下文,这是这种情况:Model创建了一个类,在本示例中,该类将用于创建股票交易模型,一个用于NASDAQ,一个用于NYSE。每个模型都需要提供原始数据的Web服务或静态数据文件的路径。该书指出,应该使用装饰器(而非构造器参数)获取此信息,从而导致以下结果: @ModelSettings("./data/nasdaq.json") class NasdaqModel extends Model implements IModel { constructor(metiator : IMediator) { super(metiator); } ... } 我只是一直不明白为什么我应该通过装饰器而不是简单地作为构造函数的参数来添加服务网址,例如 constructor(metiator : IMediator, serviceUrl : string) {...

2
对有状态的框架(例如Phaser)进行单元测试?
TL; DR在确定有状态的框架中工作时,我需要帮助您确定简化自动化单元测试的技术。 背景: 我目前正在用TypeScript和Phaser框架编写游戏。Phaser将自己描述为一个HTML5游戏框架,该框架试图尽可能少地限制代码的结构。这需要进行一些权衡,即存在一个上帝对象的Phaser.Game,它可以让您访问所有内容:缓存,物理,游戏状态等。 这种状态性使得很难测试很多功能,例如我的Tilemap。让我们来看一个例子: 在这里,我正在测试我的瓷砖图层是否正确,并且可以在我的Tilemap中识别墙壁和生物: export class TilemapTest extends tsUnit.TestClass { constructor() { super(); this.map = this.mapLoader.load("maze", this.manifest, this.mazeMapDefinition); this.parameterizeUnitTest(this.isWall, [ [{ x: 0, y: 0 }, true], [{ x: 1, y: 1 }, false], [{ x: 1, y: 0 }, true], [{ x: 0, y: 1 }, true], …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.